在 Linux 中,您可以执行以下操作:
kill 1
(或者kill %1
)
这意味着“关闭进程工作编号 1”。
您可以执行以下操作:
kill 1234
这意味着“将SIGTERM
信号发送到PID为1234的进程”。
这两个kill
命令是同一个命令,还是两个不同的命令?
答案1
我不确定你能做到kill 1
(或者更确切地说,你可以尝试,但你不会被允许这样做,除非你的根,然后你会感到惊讶)。1
这里总是指 id 为 1 的进程,通常是init
(或其某些变体)。
为了真正回答你的问题,如果你使用的 shell 支持作业控制,那么kill
shell 将会内置,处理这两种情况(管理作业和进程)。参见示例巴什的kill
命令。
如果您使用的 shell 不支持作业控制(有吗?),kill
则通常是系统中的二进制文件/bin/kill
;参见例如util-linux
的kill
命令。即使在具有内置kill
命令的 shell 中,您也可以通过指定其完整路径来访问该命令。该kill
命令也可以在没有 shell 的情况下访问(用于从另一个程序使用)。
也可以看看POSIX 的定义kill
,涵盖了两种情况(但没有具体说明在哪里实现了什么)。