用ps和grep命令尋找僵屍進程
#ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
命令注解:
-A 參數列出所有進程
-o 自定義輸出字段 我們設定顯示字段為 stat(狀態), ppid(進程父id), pid(進程id),cmd(命令)這四個參數
因為狀態為 z或者Z的進程為僵屍進程,所以我們使用grep抓取stat狀態為zZ進程
運行結果參考如下
Z 12334 12339 /path/cmd
這時,我們可以使用 kill -HUP 12339來殺掉這個僵屍進程
運行後,可以再次運行ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'來確認是否已經將僵屍進程殺死
如果kill 子進程的無效,可以嘗試kill 其父進程來解決問題,例如上面例子父進程pid是 12334,那麼我們就運行
#kill -HUP 12334
來解決問題
一般可以用top命令發現動態進程表
#top
其中zombie是僵屍進程