服務(wù)器上不定期的會出現(xiàn)僵尸進程,占用資源很麻煩啊。比如找出那些運行超過1個小時的進程之類的
2 回答

元芳怎么了
TA貢獻1798條經(jīng)驗 獲得超7個贊
首先,僵尸進程不占用內(nèi)存和CPU,只占用一個PID和對應(yīng)的進程結(jié)構(gòu)存儲空間。
其次,出現(xiàn)僵尸進程,通常是server程序沒寫好,建議首先考慮修復(fù)這個問題
最后,用ps aux可以看出一個進程是否是僵尸進程(STAT=Z)、它的啟動時間(START TIME,或者執(zhí)行stat /proc/PID獲取創(chuàng)建時間)。有了這些數(shù)據(jù),你可以很容易地寫個簡單腳本來濾出那些進程。

繁星淼淼
TA貢獻1775條經(jīng)驗 獲得超11個贊
1. 應(yīng)該先檢查下程序, 是不是 沒有對 子進程 調(diào)用 wait或者waitpid函數(shù)回收進程資源, 或者把子進程掛在init進程下面, 由系統(tǒng)回收資源。 沒有回收 進程資源的進程 就是會zombie狀態(tài)。
2. 作為一個應(yīng)急的處理辦法, 把狀態(tài)是Zombie的進程篩選出來, 然后殺了也可以。
kill -9 $( ps aux | awk '{ if( $8 == "Z" ) { print $2 ; } }' )
添加回答
舉報
0/150
提交
取消