linux下的殭屍程序,用kill -9 都不會消失,下面有一種辦法可以解決此問題:
前些天發現有crontask程序死掉了,狀態為z,表明是殭屍程序了。通過下面的步驟可以解決它
1.用pstree命令查詢其父程序
5124 ? ss 0:00 crond
8884 ? s 0:00 /_ crond
8893 ? zs 0:00 | /_ [crontask.sh]
9078 ? s 0:00 | /_ /usr/sbin/sendmail -fcrondaemon -i -odi -oem -oi -t
14496 ? s 0:00 /_ crond
14504 ? zs 0:00 | /_ [crontask.sh]
14685 ? s 0:00 | /_ /usr/sbin/sendmail -fcrondaemon -i -odi -oem -oi -t
19340 ? s 0:00 /_ crond
19349 ? zs 0:00 | /_ [crontask.sh]
19530 ? s 0:00 | /_ /usr/sbin/sendmail -fcrondaemon -i -odi -oem -oi -t
24653 ? s 0:00 /_ crond
24660 ? zs 0:00 | /_ [crontask.sh]
24838 ? s 0:00 | /_ /usr/sbin/sendmail -fcrondaemon -i -odi -oem -oi -t
2. 殺死其父程序crond
3.重啟crontab服務
解決殭屍程序
這幾天同事寫的程式中出現了大量的殭屍程序,幫忙分析了一下,問題出現在幾個方面 首先top命令檢視殭屍程序數目 檢視所有的殭屍程序 殺死所有殭屍程序 ps a o stat,ppid,pid,cmd grep e zz awk xargs kill 9 在程式中幾個注意的方面 1.建立子程序後,父程序...
程序等待 解決殭屍程序
這又得說到殭屍程序了 總結的來說,就是子程序退出,但是讓子程序幫忙做事的父程序一直不檢視子程序做事的結果,所以子程序進入殭屍狀態,我們可以通過殺死父程序來退出此狀態 但是很暴力 所以我們可以採取讓父程序等待,讓他記得要 子程序資源,獲取子程序的退出資訊。1 wait 方法 include inclu...
subprocess解決殭屍程序
由於父程序建立子程序是非同步的,雙方不知道各自的執行狀態,而父程序有的時候需要知道子程序退出時的一些資訊,所以 linux提供了一種機制,通過讓子程序退出時向父程序傳送 sigchrd 訊號來告知父程序,子程序已經退出了。同時,父程序通過呼叫 wait 和 waitpid 來獲取子程序的退出資訊。i...