你自己看:
% sudo sleep 100 &
[1] 23272
% pkill sleep
pkill: killing pid 23275 failed: Operation not permitted
% fg
[1] + running sudo sleep 100
^C
%
终端如何能够终止sleep
这里的特权进程?
我验证并确定了两件事:
禁止向属于任何其他用户的进程发出信号,甚至是
nobody
.% sudo -u nobody sleep 100 & [1] 24321 % pkill sleep pkill: killing pid 24324 failed: Operation not permitted
我尝试过
SIGTERM
,SIGKILL
但SIGINT
没有一个被交付。Ctrl+C 确实发送 SIGINT。
% cat script.sh #!/bin/sh trap 'echo "SIGINT caught!"' SIGINT while true do sleep 1 done % ./script.sh ^CSIGINT caught!
所以看起来我们这里确实存在矛盾。