来自的手册页killall
:
killall 实用程序通过名称杀死选定的进程,而不是像 kill(1) 那样通过 pid 进行选择。默认情况下,它将向所有具有与 killall 调用者相同的真实 UID 且与名称 procname 匹配的进程发送 TERM 信号。超级用户可以杀死任何进程。
这里是啥caller of killall
?我很困惑,因为我正在运行该killall
命令,所以我不是在调用它吗?
答案1
在手册中,正如你所说,你是的调用者killall
;killall
将杀死所有与你指定的名称匹配的进程也匹配调用者(您的)UID(用户 ID),也就是仅匹配调用者(您)拥有的进程。这样一来,调用者就无法意外(或恶意)终止不属于自己且无权终止的进程。
正如手册页引文的最后一句所述,超级用户(UID 0)始终可以终止任何进程,即使该进程不属于超级用户。