天天看點

linux 檢視并殺死僵屍程序

1.可以先試用top 指令檢視是否有僵屍程序

linux 檢視并殺死僵屍程式

在紅色表示的地方  如果zombie 大于“0”表示伺服器目前存在僵屍程序

2.如果存在僵屍程序,可以使用指令

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

指令注解:

-A 參數列出所有程序

-o 自定義輸出字段 我們設定顯示字段為 stat(狀态), ppid(程序父id), pid(程序id),cmd(指令)這四個參數

因為狀态為 z或者Z的程序為僵屍程序,是以我們使用grep抓取stat狀态為zZ程序

3.運作結果參考如下:

Z 12334 12339 /path/cmd

這時,我們可以使用 kill -HUP 12339來殺掉這個僵屍程序

運作後,可以再次運作ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'來确認是否将僵屍程序殺死

如果kill 子程序的無效,可以嘗試kill 其父程序來解決問題,例如上面例子父程序pid是 12334,那麼我們就運作

kill -HUP 12334

4.運作結果參考如下;

linux 檢視并殺死僵屍程式

這裡一共出現了9個僵死程序,我們需要把它們都幹掉,執行下面的指令:

kill -9  8310

這時你再執行查找僵死的程序,發現所有僵死程序都沒了.

5.如過查出來的程序很多 并且每個僵屍死程序的父程序又不一樣

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9

繼續閱讀