pkill#
pkill 是包含在 procps-ng 內的行程名稱過濾工具
pkill 是 Linux 系統中用於根據「名稱」或其他屬性(如使用者、終端機)發送訊號給行程的工具。它本質上是
pgrep的擴充功能,先搜尋符合條件的行程,再發送訊號。與kill必須手動輸入 PID 不同,pkill讓你可以直接透過程序名稱來批量管理行程。
Install#
$ sudo apt install procpsSetting in up#
Operate#
pkill [options] [pattern]
| 參數 | 範例指令 | 說明 |
|---|---|---|
-f | pkill -f "python script.py" | 完整比對。不只比對行程名稱,連同啟動參數(完整路徑)一併搜尋。 |
-u | pkill -u root nginx | 特定使用者。僅針對 root 啟動的 nginx 行程發送訊號。 |
-t | pkill -t pts/0 | 特定終端機。殺掉連接在特定 TTY(如 pts/0)上的所有行程。 |
-n | pkill -n nginx | 最新行程。僅針對最近(Newest)啟動的 nginx 行程發送訊號。 |
-o | pkill -o nginx | 最舊行程。僅針對最早(Oldest)啟動的 nginx 行程發送訊號。 |
-SIGNAL | pkill -9 mysql | 指定訊號。對所有 mysql 行程發送強制終止 (SIGKILL) 訊號。 |
-x | pkill -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: