pidof 命令
基本介绍
pidof是 Linux 系统中用于查找进程 ID(PID)的命令行工具。它根据进程名称快速返回对应的进程 ID,是系统管理员进行进程管理和脚本编写的常用工具。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
pidof [OPTIONS] <进程名>常用选项
基本操作选项
-s, --single:只返回一个进程 ID-c, --check-root:只返回由 root 用户运行的进程-x, --exe:也匹配脚本(不仅仅是二进制可执行文件)-o, --omit-pid <pid>:排除指定的进程 ID-o %PPID:排除父进程 ID
输出控制选项
-d, --delimiter <delimiter>:设置输出分隔符(默认为空格)-f, --full:完整格式输出(显示完整路径)-l, --long:长格式输出-n, --name:只显示进程名(不显示 PID)
其他选项
-h, --help:显示帮助信息-V, --version:显示版本信息
使用示例
1. 查找单个进程的 PID
pidof nginx输出示例:
1234 56782. 只返回一个进程 ID
pidof-snginx输出示例:
12343. 排除指定进程 ID
pidof-o1234nginx4. 设置自定义分隔符
pidof-d','nginx输出示例:
1234,56785. 查找脚本进程
pidof-xmyscript.sh6. 检查进程是否运行
ifpidof nginx>/dev/null;thenecho"nginx 正在运行"elseecho"nginx 未运行"fi7. 终止进程
kill$(pidof nginx)# 优雅终止kill-9$(pidof nginx)# 强制终止8. 查找由 root 运行的进程
pidof-cnginx9. 排除父进程
pidof-o%PPIDnginx10. 结合其他命令使用
# 查看进程详细信息psaux|grep$(pidof nginx)# 查看进程打开的文件lsof-p$(pidof-snginx)输出格式说明
基本输出
默认情况下,pidof返回空格分隔的进程 ID 列表:
1234 5678 9012自定义分隔符
使用-d选项可以设置自定义分隔符:
pidof-d','nginx# 输出: 1234,5678,9012返回值
- 0:找到进程(至少一个)
- 1:未找到进程
- 2:错误
实用技巧
在脚本中使用
#!/bin/bash# 检查 nginx 是否运行ifpidof nginx>/dev/null;thenecho"nginx 正在运行,PID:$(pidof nginx)"elseecho"nginx 未运行,启动中..."systemctl start nginxfi监控进程状态
whiletrue;doif!pidof nginx>/dev/null;thenecho"nginx 已停止,自动重启"systemctl restart nginxfisleep5done批量终止进程
# 终止所有 java 进程kill$(pidofjava)# 终止除了当前脚本外的所有 python 进程kill$(pidof-o$$ python)与其他工具的对比
| 工具 | 特点 |
|---|---|
pidof | 简单快速,只返回 PID |
pgrep | 更强大的模式匹配,支持正则 |
ps | 功能全面,显示详细信息 |
pgrep -f | 匹配完整命令行 |
相关命令
pgrep:按名称或其他属性查找进程pkill:按名称终止进程ps:显示进程信息kill:终止进程killall:按名称终止进程lsof:显示进程打开的文件
注意事项
- 权限要求:
pidof通常不需要 root 权限,但某些进程信息可能受限 - 进程名称:进程名称应与
ps命令显示的一致 - 脚本匹配:使用
-x选项可以匹配脚本进程 - 排除进程:使用
-o选项可以排除特定进程 - 返回值:检查返回值可以判断进程是否存在
- 多个进程:如果有多个同名进程,会返回所有 PID
总结
pidof是 Linux 系统中快速查找进程 ID 的实用工具。它简单高效,常用于脚本编写和进程管理。通过pidof,用户可以快速获取进程的 PID,方便进行后续的进程操作。虽然功能相对简单,但在日常系统管理中非常实用。