yas*_*sfi 0 c signals kill process parent-child
我试图找出如何在同一秒内向 3 个子进程发送信号。你能向我解释一下为什么它可能或不可能吗?
如果可能的话,你能帮我理解在 C 中使用一些代码吗kill()?
POSIX 规范kill()给出了向多个进程发送信号的几种方法:
\n\n如果pid为 0,则sig应发送到进程组 ID 等于发送者进程组 ID 且有权发送信号的所有进程(不包括一组未指定的系统进程)。
\n如果pid为 -1,则 sig应发送到该进程有权发送该信号的所有进程(不包括一组未指定的系统进程)。
\n如果pid为负数,但不是 -1,则sig应发送到进程组 ID 等于pid的绝对值且该进程有权发送信号的所有进程(不包括未指定的一组系统进程) 。
\n
您的请求适用于“所有儿童”。如果任何子进程更改了进程组 ID \xe2\x80\x94 并且这是他们可以自由执行的操作,则这是不可行的。此外,如果任何孩子此后执行了 SUID 程序,您很可能会失去向他们发送信号的权限。
\npid值是相当危险的;-1我相信它将转到与当前进程具有相同(有效)UID 的所有进程。