解決殭屍程序

2021-05-24 15:30:46 字數 987 閱讀 1138

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...