Linux 中的 pidof 命令
pidof
是一个命令行实用程序,可让您查找正在运行的程序的进程 ID。
在本文中,我们将解释如何使用 Linux pidof
命令。
如何使用pidof
命令
对于基于 Red Hat 和 Debian 的发行版,pidof
有不同的实现。在 Red Hat 发行版上,pidof
命令是 procps-ng
软件包的一部分,而在 Debian 上,它是 sysvinit-utils
的一部分。我们将讨论这两种实现的常见选项。
pidof
命令的语法如下:
pidof [OPTIONS] PROGRAM_NAME
该命令接受零个或多个名称作为参数,但通常情况下,您只会将一个名称传递给pidof
。
当不带任何选项调用时,pidof
将打印与给定名称匹配的所有正在运行的程序的 PID。例如,要查找 SSH 服务器的 PID,您可以运行:
pidof sshd
如果有名称与sshd
匹配的正在运行的进程,它们的PID将显示在屏幕上。如果未找到匹配项,则输出将为空。
输出
4382 4368 811
当至少一个正在运行的程序与请求的名称匹配时,pidof
返回0
。否则,退出代码
是1
。这在编写 shell 脚本时很有用。
为确保仅显示您正在搜索的程序的 PID,请使用该程序的完整路径名作为参数。例如,如果您有两个正在运行的同名程序,位于两个不同的目录中,pidof
将显示两个正在运行的程序的 PID。
默认显示所有匹配的运行程序的PID。使用-s
选项强制pidof
仅显示一个PID:
pidof -s program_name
-o
选项允许您从命令输出中排除具有给定 PID 的进程:
pidof -o pid program_name
当使用 -o
选项调用 pidof
时,您可以使用名为 %PPID
的特殊 PID,它代表调用 shell 或 shell 脚本。
要仅返回在同一根目录中运行的进程的 PID,请使用 -c
选项。
此选项仅适用于 pidof
以 root 身份运行或 sudo
用户:
pidof -c pid program_name
pidof
命令的用法示例
以下示例展示了如何将 pidof
命令与 kill
结合使用
终止程序的命令。
假设 Firefox 浏览器没有响应,您需要终止 Firefox 进程。首先,找到 PID,使用 pidof
:
pidof firefox
该命令将打印所有 Firefox 进程:
输出
2551 2514 1963 1856 1771
一旦您知道 Firefox 进程 PID,请发送 SEGTERM
信号来终止所有进程:
sudo kill -9 2551 2514 1963 1856 1771
您还可以使用命令替换表达式$(...)
,以一条命令终止程序:
sudo kill -9 $(pidof firefox)
结论
pidof
命令用于查找特定正在运行的程序的PID。
pidof
是一个简单的命令,没有很多选项。通常,您将仅使用您正在搜索的程序的名称来调用pidof
。
如果您有任何问题或反馈,请随时发表评论。