pkill#

pkill 是包含在 procps-ng 內的行程名稱過濾工具

pkill 是 Linux 系統中用於根據「名稱」或其他屬性(如使用者、終端機)發送訊號給行程的工具。它本質上是 pgrep 的擴充功能,先搜尋符合條件的行程,再發送訊號。與 kill 必須手動輸入 PID 不同,pkill 讓你可以直接透過程序名稱來批量管理行程。

Install#

$ sudo apt install procps

Setting in up#


Operate#

pkill [options] [pattern]

參數範例指令說明
-fpkill -f "python script.py"完整比對。不只比對行程名稱,連同啟動參數(完整路徑)一併搜尋。
-upkill -u root nginx特定使用者。僅針對 root 啟動的 nginx 行程發送訊號。
-tpkill -t pts/0特定終端機。殺掉連接在特定 TTY(如 pts/0)上的所有行程。
-npkill -n nginx最新行程。僅針對最近(Newest)啟動的 nginx 行程發送訊號。
-opkill -o nginx最舊行程。僅針對最早(Oldest)啟動的 nginx 行程發送訊號。
-SIGNALpkill -9 mysql指定訊號。對所有 mysql 行程發送強制終止 (SIGKILL) 訊號。
-xpkill -x ssh精確比對。名稱必須完全符合 “ssh”(避免殺到 sshd)。
屬性名稱功能詳細解釋
Pattern名稱比對預設使用正規表示法 (Regex) 比對行程名稱。
UID/EUID使用者標識根據啟動行程的使用者 ID 或有效使用者 ID 進行過濾。
TERMINAL終端機綁定根據行程所屬的控制終端(TTY)進行過濾。
PGRP行程組根據行程組 ID (Process Group ID) 批量操作。
SIGNAL訊號傳遞預設發送 SIGTERM (15),可自定義為 1 到 31 號訊號。

Reference#

Official docs: