如何跟踪在 C++ 中杀死了哪些所有子进程
How to keep track of which all child processes are killed in c++
我正在写一个服务器。它使用 fork()
创建新的子进程。我想在父进程死亡时终止子进程。我打算使用一个数组来存储子进程的 pids processes.But 子进程有可能在父进程之前终止。在这种情况下,如果我们使用 SIGKILL
和已经终止的子进程的 pid 调用 kill
函数,它会抛出异常吗?
当一个子进程终止时,一个 SIGCHLD
信号被发送到父进程。您可以在父级中处理此信号,以检查哪个子级已自行终止,然后才有机会 wait
。并且您应该 wait()
让所有子进程避免僵尸进程。
您还可以查看此线程,了解在父终止时让子终止的替代方法:How to make child process die after parent exits?
我正在写一个服务器。它使用 fork()
创建新的子进程。我想在父进程死亡时终止子进程。我打算使用一个数组来存储子进程的 pids processes.But 子进程有可能在父进程之前终止。在这种情况下,如果我们使用 SIGKILL
和已经终止的子进程的 pid 调用 kill
函数,它会抛出异常吗?
当一个子进程终止时,一个 SIGCHLD
信号被发送到父进程。您可以在父级中处理此信号,以检查哪个子级已自行终止,然后才有机会 wait
。并且您应该 wait()
让所有子进程避免僵尸进程。
您还可以查看此线程,了解在父终止时让子终止的替代方法:How to make child process die after parent exits?