使用无特权的用户帐户,使用bash,我可以这样做:
sudo /bin/sleep 6000
并使用Ctrl-c将其杀死。但是,从另一个终端发送SIGINT或SIGKILL将不能用于此目的。
任何人都知道为什么会这样?我希望能够杀死发送信号的过程,例如在脚本中使用。
问候。
答案 0 :(得分:1)
您只能向使用相同UID运行的进程发送信号(除非发送进程以root身份运行)。当您使用sudo
时,新进程以root身份运行,但如果您尝试终止它,则表示您正在以普通用户标识运行。你必须使用sudo kill PID
来杀死它。
终端控制字符发送的信号被特别处理:它们可以被发送到与终端在同一登录会话中运行的任何进程。