据我了解,killall name
它查找所有名称为 name 的进程。因此killall killall
应该查找并终止自身,所以我预计没有输出。所以我很好奇:
为什么它看起来像这样:
nathan:~ max$ killall killall
No matching processes belonging to you were found
nathan:~ max$
我目前使用 OS X。
答案1
根据 Linux 手册页,killall
它不会自行终止。
编辑:我发现 OSX 手册页上没有提到这一点,但它可能有相同的行为。原因是您可以使用正则表达式,因此killall
在指定正则表达式时,您完全有可能意外地尝试终止,而这会使其变得killall
不那么有用。
编辑 2:我可能大错特错,但 OSX 不是叫做“达尔文”吗?这killall
那么源代码是OSX吗?
我的 C 语言有点生疏,但以下内容:
if (thispid == mypid) continue;
在一个循环中迭代所有活动进程似乎是一个特定的检查,以将它试图终止的当前进程与它自己的 PID 进行比较,因此它会跳过自身。
killall
如果你真的想要一个可以自行终止的程序,我想你可以下载那个源代码,删除这两行,然后重新编译它。