找到正在运行的程序的进程ID
命令语法格式
pidof [-s] [-c] [-n] [-x] [-o omitpid[,omitpid..]] program [program..]
命令描述
命令pidof找到命名程序program的进程id(pids)。 它在标准输出上打印这些id。 此程序位于某些系统上,在run-level更改脚本中使用。尤其是当系统具有类似于System-V风格的rc结构时。 在这种情况下,这些脚本位于/etc/rc?.d中,其中的”?“是运行级别。 如果系统有一个start-stop-daemon(8)程序,应该使用的该程序。
命令支持的选项及含义
-s
查找一次 – 这指示程序只返回一个pid。
-c
仅返回使用相同根目录运行的进程ID。 非root用户将忽略此选项,因为他们将无法检查他们不拥有的进程的当前根目录。
-n
避免对位于网络文件系统(如NFS)上的所有二进制文件进行stat(2)系统函数调用。不是使用此选项,也可以设置和导出PIDOF_NETFS环境变量。
-x
脚本也是 – 这会导致程序还返回运行命名脚本的Shell的进程ID。
-o omitpid
告诉pidof忽略具有该进程ID的进程。 特殊的pid值”%PPID“可用于命名pidof程序的父进程,即调用Shell或Shell脚本。
注意事项
pidof实际上是与killall5相同的程序;程序根据调用它的名称来运行相应的功能。
当使用程序的完整路径名调用pidof时,它应该找到pid,它是相当安全的。 否则,它可能会返回正在运行的程序的pids,这些程序恰好与您之后的程序具有相同的名称,但实际上是其他程序(同名但不同路径)。 请注意,正在运行的进程的可执行文件名是使用readlink(2)计算的,因此可执行文件的符号链接也将匹配。
退出状态
0 找到至少一个带有请求名称的程序。
1 没有找到与请求的程序名匹配的程序。
相关手册
shutdown(8), init(8), halt(8), reboot(8), killall5(8)
参考文献
- man 8 pidof, Version 2.88dsf-59.9
更新日志
- 06/17/2017 创建文章
- 09/27/2018 文章内容修改。