僵尸进程和孤儿进程

父进程调用fork()生产子进程,子进程先于父进程退出,但是父进程没有调用wait()方法或者是waitpid()方法回收子进程的资源,子进程就变成了僵尸进程,这个进程号会一直被占用

如果大量的僵尸进程产生,则没有可用的进程号会导致系统无法产生新的进程

解决方法:父进程每隔一段时间查询子进程是否结束,如果结束就回收子进程资源

使用signal函数,当子进程结束,父进程就会收到该信号,父进程再调用wait()方法或者是waitpid()方法回收子进程的资源

孤儿进程:父进程先于子进程退出,子进程会被1号进程也就是init进程领养

当子进程退出的时候,1号进程(也就是init进程)会回收子进程的资源,防止子进程变成僵尸进程


版权声明:本文为weixin_47414034原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。