Linux pkill 命令


pkill命令

來源:https://www.itcoder.tech/posts/pkill-command-in-linux/
原文:https://linuxize.com/post/pkill-command-in-linux/

本文講述 Linux 命令 pkill 的基礎用法。

pkill是一個命令行工具,它根據現有標准,給正在運行的程序進程發送信號。進程可以通過他們的完整名字,部分名字,用戶進程或者其他屬性指定。

這個pkill命令是procps(或者procps-ng)軟件包中的一部分。該軟件包被預裝在幾乎所有的 Linux 發行版上。 pkill是一個基於打印匹配進程列表的pgrep程序的封裝。

一、如何使用 pkill 命令

pkill命令的語法如下:

pkill [OPTIONS] <PATTERN>

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

當不使用任何選項時,pkill發送15TERM)信號給匹配名字的所有運行程序的 PIDS。例如,想要完美停止所有 firefox 進程,你需要運行:

pkill -9 firefox

當最少有一個正在運行的進程匹配給出的名字時,這個命令返回0,否則,返回退出代碼1。在 shell 腳本中,返回值很有用。

想要發送不同的信號給匹配進程,運行pkill命令加上--signal選項,再加上進程號或者進程名。另一種發送信號的方式就是,運行pkill 加上使用-作為前綴的信號名字或者信號序號。

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

最常被使用的信號是:

  • 1(HUP):重新加載進程
  • 9 (KILL): 殺死進程
  • 15(TERM):完美地停止一個進程

信號可以通過三種不同的方式來指定:

  • 使用一個信號序號(例如: -1)
  • 使用 “SIG” 前綴 (例如: -SIGHUP)
  • 不使用 “SIG” 前綴 (例如: -HUP)

例如,想要重新加載 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

結束SSH登錄終端

linux-test158:~ # who
root pts/0        Dec 21 14:15 (10.110.158.201)
plmf     pts/4        Dec 21 14:08 (10.110.158.66)
linux-test158:~ # pkill -9 -t pts/4

二、總結

pkill命令被用來發送信號給正在運行的程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM