Linux
殺死 PGID 但程序正在重生,如何使其持久化?
我跑去
ps aux --forest -j
看父程序和子程序。這是一個例子:root 3744 3744 3744 0.0 0.2 77084 4160 ? Ss 09:34 0:00 /usr/sbin/cupsd -f lp 3747 3747 3744 0.0 0.1 63156 2236 ? S 09:34 0:00 \_ /usr/lib/cups/notifier/dbus dbus:// lp 3748 3748 3744 0.0 0.1 63156 2240 ? S 09:34 0:00 \_ /usr/lib/cups/notifier/dbus dbus://
第三列是 PGID。我的目標是使用父級的 PGID 3744 殺死所有這 3 個 PID。我的命令是 -
pkill -TERM -g 3744
這是可行的,但是,該程序會使用新的 PID 重新生成自身。我怎樣才能避免這種情況並使其持久化?
您正在執行 Ubuntu 14.04,它
upstart
用作它的 init 程序。從 中我們可以看出/etc/init/cups.conf
,它有一個respawn
節,所以預設情況下,當 cupsd 程序結束時,會啟動另一個。# kill -TERM -3390 # tail -1 /var/log/syslog Aug 9 14:22:49 ubuntu kernel: [ 283.270126] init: cups main process ended, respawning
你說你想殺死 cupsd 程序樹,並在下次重新啟動時重新啟動。為此,您可以使用
initctl stop
(或只是stop
)命令:# stop cups cups stop/waiting
cups-browsed
如果您希望與杯子相關的所有事情都停止,您可能還想停止。這不會永久禁用該服務。重新啟動後,將啟動 cups 程序。