「pidof(8)」-

找到正在运行的程序的进程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 文章内容修改。