1

使用非特权用户帐户,使用 bash,我可以这样做:

sudo /bin/sleep 6000

并用 Ctrl-c 杀死它。但是,从另一个终端发送 SIGINT 或 SIGKILL 将无法达到此目的。

有谁知道这是为什么?例如,我希望能够终止发送信号的进程,以便在脚本中使用。

问候。

4

1 回答 1

1

您只能向使用相同 UID 运行的进程发送信号(除非发送进程以 root 身份运行)。当您使用sudo时,新进程以 root 身份运行,但如果您尝试杀死它,您将以普通用户 ID 运行。你必须用sudo kill PID它来杀死它。

从终端控制字符发送的信号被特殊处理:它们可以发送到与终端在同一登录会话中运行的任何进程。

于 2013-07-05T13:25:38.317 回答