killall − 以名字方式來殺死進程
killall [−egiqvw] [−signal] name ...
killall −l
killall −V
killall 發送一條信號給所有運行任意指定命令的進程. 如果沒有指定信號名, 則發送 SIGTERM.
信號可以以名字 (如 −HUP ) 或者數字 (如 −1 ) 的方式指定. 信號 0 (檢查進程是否存在)只能以數字方式指定.
如果命令名包括斜槓 (/), 那麼執行該特定檔案的進程將被殺掉, 這與進程名無關.
如果對於所列命令無進程可殺, 那麼 killall 會返回非零值. 如果對於每條命令至少殺死了一個進程, killall 返回 0.
killall 進程決不會殺死自己 (但是可以殺死其它 killall 進程).
−e |
對於很長的名字, 要求準確匹配. 如果一個命令名長於 15 個字符, 則可能不能用整個名字 (溢出了). 在這種情況下, killall 會殺死所有匹配名字前 15 個字符的所有進程. 有了 −e 選項,這樣的記錄將忽略. 如果同時指定了 −v 選項, killall 會針對每個忽略的記錄列印一條消息. |
||
−g |
殺死屬於該進程組的進程. kill 信號給每個組只發送一次, 即使同一進程組中包含多個進程. |
||
−i |
交互方式,在殺死進程之前征求確認信息. |
||
−l |
列出所有已知的信號名. |
||
−q |
如果沒有進程殺死, 不會提出抱怨. |
||
−v |
報告信號是否成功發送. |
||
−V |
顯示版本信息. |
||
−w |
等待所有殺的進程死去. killall 會每秒檢查一次是否任何被殺的進程仍然存在, 僅當都死光後才返回. 注意: 如果信號被忽略或沒有起作用, 或者進程停留在僵屍狀態, killall 可能會永久等待. |
/proc proc檔案系統的存在位置
以檔案方式殺死只對那些在執行時一直打開的可執行檔案起作用, 也即, 混雜的可執行檔案不能夠通過這種方式殺死.
要警告的是輸入 killall name 可能不會在非 Linux 系統上產生預期的效果, 特別是特權使用者執行時要小心.
在兩次掃描的間隙, 如果進程消失了而被代之以一個有同樣 PID 的新進程, killall −w 偵測不到.
Werner Almesberger <Werner DOT Almesberger AT epfl DOT ch>
kill(1), fuser(1), pidof(1), ps(1), kill(2)
riser <boomer AT ccidnet DOT com>
2001/08/08
http://cmpp.linuxforum.net