我知道当一个进程不能很好地清理(它的资源没有被回收/回收)时,就会创建一个僵尸。在调用 fork() 创建一个新进程后,父进程应该始终调用该进程的 waitpid 来清理它。
我还了解到,通过分叉一个本身由 fork 创建的子进程,然后让该子进程死亡来创建守护进程。显然,一旦您执行此操作,UNIX 中的 init 进程(pid #1)将接管该进程。
我想知道的是 - 据我所知,当父母去世时,它会自动清理孩子 - 那么僵尸是如何首先创建的?
其次,守护进程的父进程死掉了,那么为什么守护进程不被认为是僵尸呢?