1、僵尸进程
一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用 wait 或 waitpid
获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程
2、成为僵尸进程的因素
子进程先于父进程退出;
子进程的状态信息,没有被父进程回收;
3、子进程退出了,父进程怎么知道呢?
对该机制有稍微了解的话,不难得知一个关键因素:SIGCHLD。正是这个SIGCHLD起到了通知的作用,所以后面的处理也是基于它而实现。
1、僵尸进程
一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用 wait 或 waitpid
获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程
2、成为僵尸进程的因素
子进程先于父进程退出;
子进程的状态信息,没有被父进程回收;
3、子进程退出了,父进程怎么知道呢?
对该机制有稍微了解的话,不难得知一个关键因素:SIGCHLD。正是这个SIGCHLD起到了通知的作用,所以后面的处理也是基于它而实现。