linux中有關殭屍進程的問題

如何查找殭屍進程並Kill之,殺不掉的要查看父進程並殺之
http://blog.csdn.net/21aspnet/article/details/6754445

用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是殭屍進程

linux中非殭屍進程殺不掉的問題
http://blog.sina.com.cn/s/blog_670bfe4d0100r07h.html

今天服務器上發現一對父子進程,子進程已經是殭屍進程,但父進程不是。
但是父進程用kill -9也殺不掉。ps xl看了一下,父進程是finish T狀態,懷疑是進程被stop了。於是用kill -18發送了一個continue的信號之後,進程被殺掉了。
發現網上有些個類似的問題,都是靠重啓解決了,故記下這個問題,希望對需要的人有所幫助。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章