> 进程管理 > pgrep

pgrep: 查找进程ID

pgrep 命令在运行的进程列表中,根据特定条件(例如进程名、用户、完整命令行)搜索进程,并输出相应的进程ID(PID)。这比组合使用 ps 命令和 grep 命令更有效率且更方便地找到所需进程。

概述

`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' 会查找 httpdnginx 进程。
  • -f 选项一起使用,例如 pgrep -f '^/usr/bin/python3.*script.py$',可以精确找到特定脚本的执行。

使用 -x 选项进行精确匹配

pgrep 默认执行部分匹配。例如,pgrep ssh 会找到 ssh 以及 sshd。如果只想查找名称精确为 ssh 的进程,请使用 -x 选项。这对于防止意外影响其他进程非常重要。



相同类别命令