
在 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
,它涵蓋了這兩種情況(但沒有指定在哪裡實現什麼)。