父进程已经死亡的进程是否正常继续执行?

Does a process whose parent has died normally continues execution?

我知道父进程死亡的子进程会变成僵尸进程,但是当这种情况发生时,它会继续正常执行吗?

到目前为止,我所读到的内容似乎表明是的,但我还没有找到证实,而且我的编程冒险似乎表明并非如此。

一个child的parent是否退出对是否继续运行没有影响。假设 child 可以访问它需要的资源,它将继续 运行 正常。

这在编写守护进程时很重要,因为通常启动的进程会分叉两次,而最终 运行 作为服务的是 grandchild。

请注意,由于某些原因 child 可能会因 parent 退出而异常退出。例如,如果 parent 是一个交互式 shell 并且它退出,终端可能会消失,结果 child 可能会收到一个 SIGHUP。然而,在那种情况下,child 退出的原因是因为它收到了一个它没有处理的信号,如果它设置了一个合适的处理程序,它会继续 运行ning。