Linux 中的 pkill 命令
命令行实用程序 pkill 根据您指定的参数终止程序进程。运行该进程的用户、其部分或全名或几个其他属性决定了其进程。 pkill 命令预安装在大多数 Linux 发行版上,是 procps-ng 或 procps 软件包的一部分。使用 pkill,您可以使用 pgrep 程序列出匹配的进程。
使用 pkill 命令,Linux 系统可以结束正在运行的进程。它的独特功能之一是它不需要像kill命令那样输入进程的PID号。您可以通过输入进程名称作为输入来结束该进程。在大多数情况下,我们知道必须停止哪个进程,并且知道它的名称。事实证明,这是一种简单的命令行方法,可以帮助我们完成复杂的过程。本文将详细介绍使用 pkill 命令的各种方法的细节,并尝试完全理解它。
Linux 中的 pkill 命令
以下是 pkill 命令的标准语法:
我们使用扩展正则表达式指定匹配的
如果进程与替代信号匹配,则会使用 –signal 选项调用 pkill 命令。发送信号的另一种方法是在运行 pkill 后在数字或信号名称前面加上连字符 (-)。
您可以使用kill -l 命令列出所有可用的提示。我们列出了比较常见的信号,如下图:
15 (TERM): | For stopping any process completely |
9 (KILL): | For killing a process |
1 (HUP): | For reloading a process |
指定信号的方法有以下三种:
不带“SIG”前缀,例如-HUP
带有“SIG”前缀,如 -SIGHUP
使用数字,例如 – 1
按进程名称杀死进程
在不带任何选项的情况下调用 pkill,通过发送 15 (TERM) 信号来启动所有正在运行的程序的终止。如果你想正常停止所有 Firefox 进程,可以运行以下命令:
当一个或多个正在运行的进程名称与请求匹配时,该命令返回 0。否则,退出代码为 1。这在编写 shell 脚本时可能很有用。
注意: 进程的部分名称中必须至少出现 15 个字符。
重新加载过程
您可以通过运行以下命令重新加载任何“X”进程。
这里,“X”是您要重新加载的进程。
终止进程以特定表达式开始和结束
您可以使用 pkill 正则表达式来匹配进程名称。如果您在发送单个进程之前先打印匹配的进程,则使用 pgrep 命令会更有利。例如,您可以运行以下命令列出以“ssh”开头的所有内容:
插入符号“*”应出现在字符串开头之前,美元“$”应出现在字符串末尾。
基于完整命令杀死进程
默认情况下,pkill 命令仅匹配进程名称。通过-f选项,我们可以指示pkill执行完整的命令而不是进程名。
假设您的系统中正在运行两种类型的 ping 命令,您将运行以下命令来停止它们:
两者都会使用前一个命令来终止系统中运行的 ping 命令。为了避免此问题,使用 -f 命令行选项。
这里,“A”可以是您系统的任何一个 ping。
前面的命令只会杀死运行时输入的 ping。
发送不同的信号来终止进程(-signal)
默认情况下,pkill 命令在执行期间使用“SIGTERM”信号。您可以通过使用 pkill 命令的“–signal”选项来更改默认信号:
不敏感的 pkill 案例
pkill 命令以不同方式处理小写和大写名称,因为该命令区分大小写。要使 pkill 不区分大小写,可以使用 -i 选项。为此,请运行以下命令:
-u 选项用于指定 pkill 以匹配特定用户正在运行的进程。
这里,“X”是用户的名字。
如果您想指定多个用户,请用逗号分隔多个用户。
“X”、“Y”和“Z”是三个不同的用户。
您还可以组合搜索模式和选项。您必须运行以下命令向“X”用户和“Y”下的所有进程发送KILL信号。
“X”是用户名,“Y”是搜索模式。
-o 和 -n 选项显示最近最旧或最近启动的进程。
例如,运行以下命令来终止最近最旧的屏幕:
结论
pkill 命令根据各种参数向程序发出运行信号。如果您想停止一个进程并知道它的名称,那么您可以使用 pkill 命令来终止该进程。在本文中,我们基于许多实际示例看到了 pkill 命令的许多用法。我们希望在本文的帮助下,您能够充分理解 pkill 命令并杀死进程。查看其他 Linux 提示文章以获取更多提示和教程。