有2個殭屍進程在我的服務器上運行,我無法用kill -9命令殺死它們。無法殺死殭屍進程kill -9
$ ps aux | awk '{ print $8 " " $2 }' | grep -w Z
輸出:
ž8511 ž9002
可有人請我建議任何其他更好的方式來殺死他們。
謝謝,
Sandeep。
有2個殭屍進程在我的服務器上運行,我無法用kill -9命令殺死它們。無法殺死殭屍進程kill -9
$ ps aux | awk '{ print $8 " " $2 }' | grep -w Z
輸出:
ž8511 ž9002
可有人請我建議任何其他更好的方式來殺死他們。
謝謝,
Sandeep。
基本上 - 你不行。而這不一定是壞事:
http://www.linuxsa.org.au/tips/zombies.html
殭屍死的過程。你不能殺死死人。所有進程 最終都會死亡,當它們變成殭屍時。他們幾乎沒有資源消耗 ,這是預料之中的,因爲他們已經死了! 殭屍的原因是殭屍的父母(進程)可以 檢索殭屍的退出狀態和資源使用統計。母親 通過使用wait()系統調用之一向操作系統發出信號,告訴它不再需要殭屍 。
當進程死亡時,其子進程全部成爲 進程號1的子進程,這是init進程。 Init始終等待孩子死亡,這樣他們就不會成爲殭屍了。
如果你有殭屍進程,這意味着那些殭屍並不是 被父母等待(查看ps -l顯示的PPID)。你有 有三個選擇:修復父進程(讓它等待);殺死父母的 ;或與之共存。請記住,與它一起生活並不困難 ,因爲殭屍在ps的輸出 中佔用了多餘的一行。
如果你碰巧知道的家長,您可以發出對父PID此命令:
kill -s SIGCHLD pid
瞭解更多關於[殭屍進程(http://en.wikipedia.org/維基/ Zombie_process)。你不需要也不能殺死他們,因爲他們是*殭屍*。你應該確保有人爲他們「waitpid」。 –