为什么如果我在 Ubuntu 20.04 中更改 procps 的 Kill 命令的名称 (mv /usr/bin/kill /usr/bin/anotherkill),它会停止工作?

为什么如果我在 Ubuntu 20.04 中更改 procps 的 Kill 命令的名称 (mv /usr/bin/kill /usr/bin/anotherkill),它会停止工作?

例如,如果我运行anotherkill -s 9 1234,我收到此错误消息:

技能:不支持“anotherkill” 有关详细信息,请参阅技能(1)。

但是,上面引用的手册页没有帮助。谢谢!!

PD:在 Fedora 32 中,如果此命令更改名称,没有问题。

答案1

这是因为命令kill和都有一个源代码skill,即它们使用完全相同的二进制文件:

$ ls -l kill skill
-rwxr-xr-x 1 root root 30952 Feb 27  2020 kill
-rwxr-xr-x 1 root root 30952 Feb 27  2020 skill
$ cmp kill skill  
$ 

在运行时,执行的命令会根据其调用的名称进行查找并采取相应的操作。

当您使用代码不需要的名称重命名命令时,行为是未定义的。

相关内容