Linux 中的 pidof 命令

评论 0 浏览 0 2020-01-26

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

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

最后更新2023-10-15
0 个评论
标签