如何殺死僵屍進程?


  • 僵屍進程定義?
    查看僵屍進程,利用命令ps,可以看到有標記為Z(zombie)的進程就是僵屍進程。

  • 僵屍進程的危害?
    僵屍進程會占用系統資源,如果很多,則會嚴重影響服務器的性能;

  • 僵屍進程產生的原因?

    • 子進程結束后向父進程發出SIGCHLD信號,父進程默認忽略了它
    • 父進程沒有調用wait()或waitpid()函數來等待子進程的結束
    • 網絡原因有時會引起僵屍進程;
  • 如何殺死僵屍進程?
    僵屍進程用kill命令是無法殺掉的,但是我們可以結果掉僵屍進程的爸爸,僵屍daddy掛了之后,僵屍進程就成了孤兒進程,孤兒進程不會占用系統資源,會被init程序收養,然后init程序將其回收。

ps -A -o stat,ppid,pid,cmd |grep -e "^[Zz]"    //先查看具體進程:
kill -9 pid號         //殺死z進程(這些動作是比較危險的,希望在真正的服務器上面慎用!!!)

1.查看所有R相關的進程
2.查看僵屍進程的父進程
3.殺死僵屍進程對應的父進程
4.僵屍進程被回收

參考:

  1. https://blog.csdn.net/zjwson/article/details/53321431
  2. https://www.cnblogs.com/sbaicl/archive/2012/09/16/2687201.html
  3. https://michaelyou.github.io/2015/03/12/孤兒進程與僵屍進程/
  4. https://baike.baidu.com/item/僵屍進程/1036577


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM