Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用非特权用户帐户,使用 bash,我可以这样做:
sudo /bin/sleep 6000
并用 Ctrl-c 杀死它。但是,从另一个终端发送 SIGINT 或 SIGKILL 将无法达到此目的。
有谁知道这是为什么?例如,我希望能够终止发送信号的进程,以便在脚本中使用。
问候。
您只能向使用相同 UID 运行的进程发送信号(除非发送进程以 root 身份运行)。当您使用sudo时,新进程以 root 身份运行,但如果您尝试杀死它,您将以普通用户 ID 运行。你必须用sudo kill PID它来杀死它。
sudo
sudo kill PID
从终端控制字符发送的信号被特殊处理:它们可以发送到与终端在同一登录会话中运行的任何进程。