我正在为考试做准备,我完全不确定如果我使用 会发生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
您将无法终止它。