概述
`pgrep` 通过进程名、用户ID、终端、父进程ID等多种条件过滤进程,并返回相应的PID。在脚本中查找并控制特定进程或检查其状态时非常有用。
主要功能
- 支持基于正则表达式的搜索
- 按用户/组过滤进程
- 可按完整命令行(full command line)搜索
- 提供选择最旧或最新进程的选项
主要选项
搜索条件
输出格式与排序
生成的命令:
请尝试组合命令。
描述:
`pgrep` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
查找特定进程PID
pgrep sshd
查找名为 `sshd` 的进程ID。
按用户查找进程PID
pgrep -u root
查找 `root` 用户运行的所有进程的ID。
同时输出PID和名称
pgrep -l firefox
同时输出 `firefox` 进程的ID和名称。
按完整命令行搜索
pgrep -f "apache2.*worker"
查找完整命令行同时包含 `apache2` 和 `worker` 的进程ID。
查找精确匹配的进程
pgrep -x ssh
查找名称精确为 `ssh` 的进程ID。(排除 `sshd`)
查找最新进程
pgrep -n chrome
查找 `chrome` 进程中最近启动的进程的ID。
提示与注意事项
`pgrep` 功能强大,但使用不当可能导致意外终止或影响进程,请谨慎使用。
与 pkill 的联动
与手动将 `pgrep` 找到的PID传递给 `kill` 命令不同,使用 `pkill` 命令可以使用与 `pgrep` 相同的搜索条件直接终止进程或发送信号,非常方便。例如,`pkill -f "nginx.*worker"` 可以直接终止 `nginx` 工作进程。
利用正则表达式
`pgrep` 默认支持正则表达式。利用这一点可以进行复杂的模式匹配。
- `pgrep 'httpd|nginx'` 会查找 `httpd` 或 `nginx` 进程。
- 与 `-f` 选项一起使用,例如 `pgrep -f '^/usr/bin/python3.*script.py$'`,可以精确找到特定脚本的执行。
使用 -x 选项进行精确匹配
`pgrep` 默认执行部分匹配。例如,`pgrep ssh` 会找到 `ssh` 以及 `sshd`。如果只想查找名称精确为 `ssh` 的进程,请使用 `-x` 选项。这对于防止意外影响其他进程非常重要。