通过kill 和pid=0 发送信号

通过kill 和pid=0 发送信号

来自kill的man

如果 pid 为 0,则 sig 应发送到进程组 ID 等于发送者进程组 ID 且该进程有权发送信号的所有进程(不包括一组未指定的系统进程)

到底是什么for which the process has permission to send a signal意思?如何检查哪些进程将收到信号?

例如,kill -9 0杀死当前启动的所有进程终端终端本身。或者还有别的什么吗?

答案1

到底是什么for which the process has permission to send a signal意思?

它的答案就在联机帮助页中:

对于有权发送信号的进程,它必须具有特权,或者发送进程的真实或有效用户 ID 必须等于目标进程的真实或保存的设置用户 ID。如果是信号控制当发送和接收进程属于同一会话时就足够了。

如何检查哪些进程将收到信号?

您可以遍历进程列表并尝试使用信号 0(空运行信号)杀死每个进程。这将告诉您是否有权发送真实信号。

相关内容