Linux中的Pkill命令

本文介绍Linux的基础知识 pkill 命令。

pkill 是一个命令行实用程序,用于根据给定的标准将信号发送到正在运行的程序的进程。 可以通过进程的全名或部分名,运行进程的用户或其他属性来指定进程。

pkill 命令是 procps (要么 procps-ng)软件包,该软件包几乎预装在所有Linux发行版中。 pkill 是基本的包装 pgrep 仅打印匹配进程列表的程序。

如何使用 pkill 命令#

的语法 pkill 命令如下:

pkill [OPTIONS] <PATTERN>

配套 <PATTERN> 使用扩展的正则表达式指定。

如果没有任何选择地被调用, pkill 发送 15TERM)信号发送给与给定名称匹配的所有正在运行的程序的PID。 例如,要正常停止所有firefox进程,可以运行:

pkill -9 firefox

命令返回 0 当至少一个正在运行的进程与请求的名称匹配时。 否则,退出代码为 1。 在编写shell脚本时,这很有用。

要将不同的信号发送到匹配的进程,请调用 pkill 用命令 --signal 选项,后跟数字或符号信号名称。 发送信号的另一种方法是运行 pkill 信号名称或数字后加上连字符(-)。

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

最常用的信号是:

  • 1HUP):重新加载一个进程。
  • 9KILL):杀死进程。
  • 15TERM):优雅地停止一个进程。

可以用三种不同的方式指定信号:

  • 使用数字(例如-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 使用option时,该命令将与完整的参数列表匹配。 如果命令包含空格,请用引号引起来:

pkill -9 -f "ping 8.8.8.8"

使用 -u 选择告诉 pkill 匹配给定用户正在运行的进程:

pkill -u mark

要指定多个用户,请用逗号分隔其名称:

pkill -u mark,danny

您还可以组合选项和搜索模式。 例如发送 KILL 向所有在用户“标记”下运行并且名称中包含“ gnome”的进程发出信号,您将键入:

pkill -9 -u mark gnome

要仅显示最近(最旧)或最近(最新)启动的进程,请使用 -n (最新)或 -o (最旧)选项。

例如,要杀死最近创建的屏幕:

pkill -9 -n screen

结论#

pkill 命令用于根据不同的标准向正在运行的程序发送信号。

有关更多信息 pkill 命令,请访问pkill手册页或输入 man pkill 在您的终端中。

如果您有任何疑问或反馈,请随时发表评论。

杀死终端

Sidebar