当父进程死亡时,僵尸进程如何处理?

当父进程死亡时,僵尸进程如何处理?

Unix 系统使用哪种技术来删除父进程已终止的僵尸进程?

答案1

当一个进程的父进程死亡时,init(进程1)会继承该进程。然后它将收获已成为或成为僵尸的进程。

收割通常由父母完成,因为父母需要知道孩子何时死亡。它还必须停止重用子进程的 pid,直到父进程知道为止,这样父进程就不会发出错误的进程信号(发出正确的 pid 信号,但 pid 现在属于新进程。)。在收获的过程中,父母应该忘记孩子。

答案2

如果一个进程终止,并且该进程有处于僵尸状态的子进程,则所有僵尸子进程的父进程ID设置为1(init进程),它将继承子进程并清理它们(即,init将等待它们,这会消除僵尸)。

相关内容