如何在c中杀死父进程及其所有子进程?

how to kill the parent process and all its child processes in c?

所以应该调用下面的函数来杀死父进程。但它让子进程活着。我知道您可以在 shell 命令中将参数传递给 sigkill 以终止该进程组下的所有子进程。但是如何在 C 中做到这一点?

kill(parent, SIGKILL);

您可以通过 kill(a_negative_number, a_signal)killpg().

进程组 发送信号

有关详细信息,请参阅 kill(2)。基本上,当您 fork()execve() 时,child 进程将具有相同的 PGID(进程组 ID)。

另一种方法是为 parent 进程安装信号句柄。当 parent 收到信号时,parent 发送信号给它的 children 并杀死他们。参见 signal(2)