1

我正在尝试使用 fork() 调用来做一个套接字编程示例,我的问题是:当一个子进程完成一项工作时,我想杀死所有其他进程。我想如果我向其他人发送一个信号......这可能还是有人告诉我一种方法?

4

3 回答 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 回答