Linux 中的 pidof 命令
pidof
是一个命令行实用程序,可让您找到正在运行的程序的进程 ID 。
在本文中,我们将解释如何使用 Linux 中的 pidof
命令。
如何使用 pidof
命令
pidof
基于 Red Hat 和 Debian 的发行版有不同的实现。在 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
当 pidof
使用 -o
选项调用时,可以使用特殊的 PID 命名 %PPID
, PID 代表调用外壳程序或外壳程序脚本。
要仅返回使用相同根目录运行的进程的 PID ,请使用 -c
选项。
此选项仅以 root 或 sudo
用户身份运行:
pidof -c pid program_name
pidof
命令用法示例
以下示例显示如何结合使用 pidof
命令和 kill
命令来终止程序。
假设 Firefox 浏览器已无响应,并且您需要终止 Firefox 进程。首先,使用以下 pidof
命令找到 PID :
pidof firefox
该命令将打印所有 Firefox 进程:
2551 2514 1963 1856 1771
一旦知道了 Firefox 的 PID ,就发送 SEGTERM
信号终止所有 PID :
sudo kill -9 2551 2514 1963 1856 1771
您还可以使用命令替换表达式 $(...)
,在一个命令中终止程序:
sudo kill -9 $(pidof firefox)
结论
pidof
命令用于查找特定正在运行的程序的 PID 。
pidof
是一个简单的命令,没有太多选择。通常, pidof
仅使用要搜索的程序的名称作为参数。