首先,我們可以用top指令來檢視伺服器目前是否有僵屍程序,可以看到第二行行尾有個 0 zombie,如果數字大于0,那麼意味着伺服器目前存在有僵屍程序
可以用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來解決問題
但是很多僵屍程序都很難kill掉.得找到原頭再去處理.
本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1890815如需轉載請自行聯系原作者
ziwenzhou