假设,让我们说main()函数创建第二个进程调用fork(),让我们说这个新进程开始通过函数makeChildren(),一百万个循环,疯狂用户创建自己的子进程。 Fork()失败,makeChildren()返回错误。如何摆脱已经创建的这些新流程?我可以使用killpg(getpgrp(),SIGKILL)???如果我理解正确,这个场景中的每个进程都有相同的组ID,不是吗?当我使用killpg(getpgrp(),SIGKILL)程序将立即终止,我是对的吗?我必须使用setpgid()吗?我想杀死这个僵尸,并在主要发布共享内存,信号量等等...谢谢你的任何解释。
答案 0 :(得分:2)
如果父进程终止,则其子进程将被重新分配给init
进程。它会wait
,因此他们不应该成为僵尸。