当我尝试使用进程 ID 小于 -1 的 kill 时会发生什么?

当我尝试使用进程 ID 小于 -1 的 kill 时会发生什么?

我正在为考试做准备,我完全不确定如果我使用 会发生kill什么pid < -1

我可以结束不包括我的组的进程吗?

哪些流程受到影响?

答案1

手册页,仅供参考:

如果 pid 小于 -1,则 sig 将发送给进程组 ID 为 -pid 的每个进程。

答案很笼统,但也适用于这种情况:

对于有权发送信号的进程来说,它必须具有特权(在 Linux 下:具有 CAP_KILL 功能),或者发送进程的真实或有效用户 ID 必须等于目标进程的真实或保存的设置用户 ID。

在我们的例子中,这意味着调用进程要么必须被赋予 CAP_KILL 功能,要么调用进程的 uid 必须与要终止的每个进程的 (set)uid 相同。

发送一个kill -56将尝试终止组 56 的每个进程,但如果其中一个进程与调用进程具有不同的 uid,则它将不会被终止。

假设您在组 56 中有进程 ID 9000、9010 和 9020,则kill -56与 相同kill 9000 9010 9020。如果您没有与 相同的进程 ID uid,则pid 9020您将无法终止它。

相关内容