我正在尝试使用 fork() 调用来做一个套接字编程示例,我的问题是:当一个子进程完成一项工作时,我想杀死所有其他进程。我想如果我向其他人发送一个信号......这可能还是有人告诉我一种方法?
问问题
1713 次
3 回答
3
在partent 开始时(在它fork 孩子之前),调用setpgid(0,0)
. 这将使进程组 ID 与父进程的 PID 相同。这个 PGID 将被每个子进程继承,并且任何进程都可以通过调用向组中的所有进程发送信号kill(signal, -getpgid(0))
。
于 2013-05-19T15:43:55.837 回答
1
杀死进程组的常用方法是使用 killpg() 系统调用。从手册页:
“killpg() 将信号 sig 发送到进程组 pgrp。”
与 killpg() 一起,可能还需要 get/setpgid 来正确设置组。
于 2013-05-19T16:45:55.207 回答
0
你可以使用这个:
killpg( 0, SIGNALTYPE);
您可以向所有孩子发送信号。
于 2014-04-24T08:09:24.320 回答