Linux 中的 Pkill 命令

本文介紹 Linux pkill命令的基礎。

pkill是一個命令行程序,可根據指定的標準信號發送到正在運行的進程。 可以通過進程的全名或部分名,運行進程的用戶或其他屬性來指定進程。

pkill命令是procps(或procps-ng)軟件包的一部分,該軟件包已預先安裝在幾乎所有 Linux 發行版中。 pkillpgrep程序的包裝程序,它僅打印匹配進程的列表。

如何使用pkill命令

pkill命令的語法如下:

pkill [OPTIONS] <PATTERN>

匹配的<PATTERN>是使用擴展的正則表達式指定的。

不帶任何選項調用時,pkill15TERM)信號發送給與指定名稱匹配的所有正在運行的程序的 PID。 例如,要正常停止所有 Firefox 進程,可以運行:

pkill -9 firefox

當至少一個正在運行的進程與請求的名稱匹配時,命令返回0。 否則,退出代碼1。 這在編寫 shell 腳本時很有用。

要將不同的信號發送到匹配的進程,請使用--signal選項調用pkill命令,後跟數字或符號信號名稱。 發送信號的另一種方法是運行pkill,後跟信號名稱或以連字符開頭的數字(-)。

使用 kill -l命令列出所有可用信號。

最常用的信號是:

可以用三種不同的方式指定信號:

例如,要重新加載 Nginx 進程,請運行:

pkill -HUP nginx

pkill使用正則表達式來匹配進程名稱。 在將信號發送給它們之前,最好先使用pgrep命令打印匹配的進程。 例如,列出所有名稱中包含 “ssh” 的進程:

1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

如果您只想向名稱與搜索模式完全相同的進程發送信號,則可以使用:

pkill '^ssh$'

插入號(^)字符在字符串的開頭,而美元$在字符串的末尾。

默認情況下,pkill僅與進程名稱匹配。 當使用-f選項時,該命令將與完整的參數列表匹配。 如果命令中包含空格,請用引號將整個命令引起來:

pkill -9 -f "ping 8.8.8.8"

使用-u選項告訴pkill匹配給定用戶正在運行的進程:

pkill -u mark

要指定多個用戶,請用逗號分隔其名稱:

pkill -u mark,danny

您還可以組合選項和搜索模式。 例如,要發送KILL信號,請在用戶 “mark” 下運行並在名稱中包含 “ gnome” 的所有進程輸入:

pkill -9 -u mark gnome

要僅顯示最近(最舊)或最近(最新)啓動的進程,請使用-n(代表最新)或-o(代表最舊)選項。

例如,殺死最近創建的 screen

pkill -9 -n screen

結論

pkill命令用於根據不同的標準向正在運行的程序發送信號。

有關pkill命令的更多信息,請訪問 pkill man 頁面或在終端中輸入man pkill

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://www.myfreax.com/pkill-command-in-linux/