如何杀死僵尸进程

僵尸进程定义?
查看僵尸进程,利用命令ps,可以看到有标记为Z(zombie)的进程就是僵尸进程。

僵尸进程的危害?
僵尸进程会占用系统资源,如果很多,则会严重影响服务器的性能;

僵尸进程产生的原因?

子进程结束后向父进程发出SIGCHLD信号,父进程默认忽略了它
父进程没有调用wait()或waitpid()函数来等待子进程的结束
网络原因有时会引起僵尸进程;
如何杀死僵尸进程?
僵尸进程用kill命令是无法杀掉的,但是我们可以结果掉僵尸进程的爸爸,僵尸daddy挂了之后,僵尸进程就成了孤儿进程,孤儿进程不会占用系统资源,会被init程序收养,然后init程序将其回收。
僵尸进程解决办法
(1)通过信号机制
  子进程退出时向父进程发送SIGCHILD信号,父进程处理SIGCHILD信号。在信号处理函数中调用wait进行处理僵尸进程。测试程序如下所示:

(2)杀死父进程
  僵尸进程用kill命令是无法杀掉的,但是我们可以结果掉僵尸进程的爸爸,僵尸daddy挂了之后,僵尸进程就成了孤儿进程,孤儿进程不会占用系统资源,会被init程序收养,然后init程序将其回收

详细文件保存在evernote Linux 笔记本:父进程和子进程,僵尸进程,孤儿进程

作者:everfight
链接:https://www.jianshu.com/p/7e051b8e60ef
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/qq_28350997/article/details/82655964