我正在写一个服务器。它使用fork()
来创建新的子进程。我希望在父进程终止时终止子进程。我打算使用数组来存储子进程的pid。但子进程有可能在父进程之前终止。在这种情况下,如果我们使用kill
调用SIGKILL
函数和已经终止的子进程的pid,它会抛出异常吗?
答案 0 :(得分:3)
当子进程终止时,会向父进程发送SIGCHLD
信号。在您有机会wait
之前,您可以在父母中处理此信号,以检查孩子自己已经终止的信号。你应该wait()
让所有孩子都避免僵尸进程。
您还可以查看此主题,以获取在父终止时终止孩子的替代方法:How to make child process die after parent exits?