1. 程式人生 > >殺死ubuntu卡死的程式

殺死ubuntu卡死的程式

最近工作過程中,發現好幾臺伺服器出現僵死程序。

用下面的命令找出僵死程序

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

命令註解:
-A 引數列出所有程序
-o 自定義輸出欄位 我們設定顯示欄位為 stat(狀態), ppid(程序父id), pid(程序id),cmd(命令)這四個引數

-C 用來指定所執行的命令名稱,你這裡也就是讓ps僅僅顯示php命令所產生的程序的資訊

ps -C java -o lstart,pid,cmd

【不過貌似列印的不全~】

ps -A -o lstart,pid,args |grep java

【這個可以的~】

因為狀態為 z或者Z 的程序為殭屍程序,所以我們使用grep抓取stat狀態為zZ程序
執行結果參考如下

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

kill -9 程式pid

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

補充:

最近又遇到了個問題,一臺伺服器上產生了100多少僵死程序,而且每一僵死程序的父程序都不一樣,如果用上面的方法,一條一條的殺,那還不得累死我啊。
那麼就應該想一條簡單的命令,直接查詢僵死程序,然後將父程序殺死~

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