如何跟踪c ++中所有子进程被杀死的情况

时间:2016-02-27 07:57:48

标签: c++ server parent-child kill sigkill

我正在写一个服务器。它使用fork()来创建新的子进程。我希望在父进程终止时终止子进程。我打算使用数组来存储子进程的pid。但子进程有可能在父进程之前终止。在这种情况下,如果我们使用kill调用SIGKILL函数和已经终止的子进程的pid,它会抛出异常吗?

1 个答案:

答案 0 :(得分:3)

当子进程终止时,会向父进程发送SIGCHLD信号。在您有机会wait之前,您可以在父母中处理此信号,以检查孩子自己已经终止的信号。你应该wait()让所有孩子都避免僵尸进程。

您还可以查看此主题,以获取在父终止时终止孩子的替代方法:How to make child process die after parent exits?