Linux kill 終止程序

當某個程式當機、跑無限迴圈,或是佔用太多資源時,我們需要強制終止它。 這就是 kill 指令的用途。

基本用法

要殺掉一個程式,你必須先知道它的 PID (Process ID)。 (可以用 ps aux | grep 程式名 或是 top / htop 查到)。

kill [PID]

範例

假設我們查到 nginx 的 PID 是 1234。

kill 1234

這會發送 SIGTERM (15) 訊號給程式,請它「優雅地」自行結束。這是最禮貌的做法,程式有機會存檔或清理資源。

強制終止 (kill -9)

有些程式可能當死透了,對 SIGTERM 沒反應。這時我們要發送 SIGKILL (9) 訊號。 這代表「直接拔掉電源」,程式會立刻消失,不會有任何存檔機會。

kill -9 1234
能用一般 kill 就不要用 kill -9,除非真的關不掉。

特殊技巧:killall

如果你懶得查 PID,而且確定要殺掉「所有」同名的程式,可以用 killall

# 殺掉所有叫 nginx 的程序
killall nginx

這在一次關閉多個 worker process 時很方便。