标签: c linux multiprocess
因此应该调用以下函数来终止父进程。但它让孩子们的过程充满活力。我知道你可以将参数传递给shell命令中的sigkill来杀死这个进程组下的所有子进程。但是如何在C中做到这一点?
kill(parent, SIGKILL);
答案 0 :(得分:3)
您可以kill(a_negative_number, a_signal)或killpg()向流程组发送信号。
kill(a_negative_number, a_signal)
killpg()
有关详细信息,请参阅kill(2)。基本上,当您fork()或execve()时,子进程将具有相同的PGID(进程组ID)。
kill(2)
fork()
execve()
PGID
另一种方法是为父进程安装信号句柄。当父母收到信号时,父母会向其子女发送信号并将其杀死。见signal(2)
signal(2)