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。如果您有任何疑问或反馈,请随时发表评论。