pkill是一个命令行实用程序,用于根据给定的标准将信号发送到正在运行的程序的进程。可以通过进程的全名或部分名,运行进程的用户或其他属性来指定进程。本文介绍了Linux pkill命令的基础知识。
该pkill命令是procps(或procps-ng)软件包的一部分,该软件包已预安装在几乎所有Linux发行版中。程序pkill的包装是基本的pgrep,它仅打印匹配进程的列表。pkill命令pkill命令的语法如下:pkill [OPTIONS] <PATTERN>使用扩展的正则表达式指定匹配。不带任何选项调用时,pkill将15(TERM)信号发送给与给定名称匹配的所有正在运行的程序的PID。例如,要正常停止所有firefox进程,可以运行:pkill -9 firefox0当至少一个正在运行的进程与请求的名称匹配时,该命令返回。否则,退出代码为1。在编写shell脚本时,这很有用。要将不同的信号发送到匹配的进程,请调用pkill带有--signal选项的命令,后跟数字或符号信号名称。发送信号的另一种方法是运行,pkill后跟信号名称或以连字符(-)开头的数字。使用kill -l命令列出所有可用信号。最常用的信号是:
1(HUP):重新加载一个进程。9(KILL):杀死进程。15(TERM):优雅地停止一个进程。可以用三种不同的方式指定信号:
例如,要重新加载Nginx进程,您将运行:
pkill -HUP nginxpkill使用正则表达式来匹配进程名称。pgrep在将信号发送给它们之前,最好使用命令打印匹配的过程。例如,列出名称中包含“ ssh”的所有进程:1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent如果您只想向名称与搜索模式完全相同的进程发送信号,则可以使用:
pkill '^ssh$'默认情况下,pkill仅与进程名称匹配。使用-foption时,该命令将与完整的参数列表匹配。如果命令包含空格,请用引号引起来: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(最旧)选项。例如,要杀死最近创建的屏幕:
pkill -9 -n screenpkill命令用于根据不同的标准向正在运行的程序发送信号。