本文涵盖了 Linux 的基础知识pkill
命令。
pkill
是一个命令行实用程序,它根据给定的条件向正在运行的程序的进程发送信号。可以通过进程的完整名称或部分名称、运行进程的用户或其他属性来指定进程。
The pkill
命令是的一部分procps
(or procps-ng
) 软件包,几乎所有 Linux 发行版都预安装了该软件包。pkill
基本性是围绕pgrep
只打印匹配进程列表的程序。
如何使用pkill
命令#
语法为pkill
命令如下:
pkill [OPTIONS] <PATTERN>
配套的<PATTERN>
使用扩展正则表达式指定。
当没有任何选项调用时,pkill
发送15
(TERM
) 向与给定名称匹配的所有正在运行的程序的 PID 发出信号。例如,要正常停止所有 Firefox 进程,您可以运行:
pkill -15 firefox
命令返回0
当至少一个正在运行的进程与请求的名称匹配时。否则,退出代码
is 1
。这在编写 shell 脚本时很有用。
要向匹配的进程发送不同的信号,请调用pkill
命令与--signal
选项,后跟数字或符号信号名称。发送信号的另一种方法是运行pkill
后跟信号名称或编号,前缀为连字符 (-
).
Use the 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"
Use the -u
选项告诉pkill
匹配给定用户运行的进程:
pkill -u mark
要指定多个用户,请用逗号分隔他们的名称:
pkill -u mark,danny
您还可以组合选项和搜索模式。例如发送KILL
向所有在用户“mark”下运行且名称中包含“gnome”的进程发出信号,您可以输入:
pkill -9 -u mark gnome
要仅显示最近(最旧)或最近(最新)启动的进程,请使用-n
(最新)或-o
(对于最旧的)选项。
例如,杀死最近创建的screen
:
pkill -9 -n screen
结论#
The pkill
命令用于根据不同的标准向正在运行的程序发送信号。
欲了解更多信息pkill
命令,访问杀人页面或类型man pkill
在您的终端中。
如果您有任何问题或反馈,请随时发表评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)