如何在Linux使用pidof命令

描述

pidof是一个命令行程序,可让您找到正在运行程序的进程ID。在教程中,我们将说明如何在Linux 使用pidof命令。

对于基于Red Hat和Debian的发行版,pidof命令有不同的实现。在Red Hat发行版中,pidof命令是procps-ng软件包的一部分。

在Debian它是sysvinit-utils的一部分。我们将介绍两种实现方式共有的选项。

pidof命令

pidof命令的语法是pidof [OPTIONS] PROGRAM_NAME。命令接受零个或多个进程名称作为参数。通常您都是将一个名称传递给pidof

在不带任何选项运行pidof命令时,将打印与指定进程名称匹配的进程PID。例如命令pidof sshd将会查找SSH服务进程PID。

如果有正在运行的进程名称与sshd匹配,则其PID将打印在终端屏幕。如果未找到匹配的进程PID,则输出为空。

当至少一个正在运行的程序与名称匹配时,pidof命令返回0。否则,退出代码为1。这在编写shell脚本时很有用。

pidof sshd
4382 4368 811

为确保仅显示要搜索的进程的PID,请使用进程的完整路径名作为参数。

例如,如果您有两个名称相同的进程位于两个不同的目录中,pidof将显示两个正在运行进程的PID。可以使用-s选项强制pidof仅显示一个PID。

-o选项可让您排除具有指定PID的进程,也可以使用%PPID指定父进程的PID排除进程。

要仅返回使用相同根目录运行的进程的PID,请使用-c选项。此选项仅在以root用户或具有sudo权限运行pidof时起作用。

pidof -s program_name
pidof -o pid program_name
pidof -c pid program_name

pidof示例

示例展示如何组合使用pidof命令和kill命令来终止进程。假设Firefox浏览器已无响应,因此您需要终止Firefox进程。

首先要做是运行命令pidof firefox找到Firefox进程的PID。命令将打印所有Firefox进程。

一旦您知道Firefox进程的PID,请运行Kill命令发送SEGTERM信号终止所有PID,您还可以使用命令替换表达式$(...)在一个命令中终止多个PID。

pidof firefox
sudo kill -9 2551 2514 1963 1856 1771
sudo kill -9 $(pidof firefox)

结论

pidof命令用于查找指定正在运行进程PID。pidof是一个简单的命令,没有太多选项。

通常,您只需使用pidof命令搜索的程序的名称查找进程pid。如果您有任何疑问或反馈,请随时发表评论。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分