1 pidof
1.1 简介
pidof 命令是一个在 Unix 和类 Unix 系统中用来查找当前运行的程序的进程 ID(PID)的命令行工具。它通常用于脚本中,以确定特定的程序是否正在运行,或者在启动或停止服务之前获取其 PID。
pidof 根据程序名称查找与之对应的所有运行中的进程的 PID。如果程序正在运行,pidof 将打印出其 PID;如果没有找到,它将打印出错误消息或没有任何输出。
pidof 在不同系统中所属包不同,在Red Hat发行版上, pidof 命令是 procps-ng 包的一部分,而在Debian上,它是 sysvinit-utils 的一部分
1.2 命令说明
语法:pidof [OPTIONS] PROGRAM_NAME
Options:
- -s 或 --signal:只返回一个 PID,即使程序有多个实例在运行。
- -o 或 --only:用法:pidof -o pid program_name,pidof 会输出该进程中除指定pid之外的所有pid。
- -c:只返回在同一个根目录下运行的进程的pid。
- -x:返回运行指定脚本的shell的进程id。
1.3 实例
# 查看pidof
ls -l /sbin/pidof
lrwxrwxrwx. 1 root root 18 8月 21 2023 /sbin/pidof -> /usr/sbin/killall5
# 检查服务是否在运行,如果存在会返回所有pid,不存在则会返回空或者报错
pidof nginx
122720 122719 122718
pidof nginx1
# 只返回一个pid
pidof -s nginx
122720
# 输出该进程中除指定pid之外的所有pid
pidof -o 122720 nginx
122719 122718
pidof -c 122720 nginx
# 和其他命令结合使用
kill -9 $(pidof nginx)
总结
pidof是一个用来获取进程号的命令,在脚本中的用的比较多。