Linux
pkill 會殺死自己(及其父程序)嗎?
我正在編寫一個 bash 腳本,它會殺死一堆由特定標準選擇的程序,然後退出。唯一的問題是這些標準適用於腳本及其父程序(
bash
,sshd
)本身,因此為了避免在腳本完成工作之前殺死腳本,我首先使用 獲取匹配的程序ps
,然後過濾掉腳本及其父母用sed
,最後用 . 殺死剩餘的程序kill
。現在我想知道我是否可以將其簡化為單個
pkill
呼叫,但顯然只有在pkill
保證殺死自身及其父程序如果它們出現在要殺死的程序列表中時它們才能持續存在。是否實施了這樣的保證
pkill
?
pkill
永遠不會殺死自己,就像pgrep
神經元列出自己一樣;在殺死每個符合條件的程序後退出pkill
,除了它自己。如果它(它們)符合標準,則確實會殺死其父級,但如果父級是外殼,除非您使用不可忽略的信號(通常只有 -9 aka -pkill
$$ SIG $$KILL) shell 通常會忽略它。如果它包含你的
sshd
,那確實會殺死你的會話,以及你的 shell 和(大多數?)其他程序,這通常是不希望的。 您可能想用orpgrep
來查找程序,並在它們之前進行額外的檢查。-l``-lf``kill