游乐游手机版
首页/系统平台/文章详情

Linux使用pgrep命令查找进程ID的方法

时间:2026-06-22 11:16
pgrep命令直接读取进程文件系统获取进程号,输出纯数字进程号,避免grep命令自身混入结果。支持-f匹配完整命令行、-u按用户查询、-c计数、-o杀最老进程、-x精确匹配及-d自定义分隔符。普通用户仅查自有进程,超级用户可查全部。

说实话,使用 pgrep 来查找进程 ID 比 ps aux | grep 那套组合操作要方便得多——至少不用再担心 grep 自身进程混入结果,还得额外加上 grep -v grep 来清理干扰。更关键的是,pgrep 直接读取 procfs 文件系统,不启动新进程,因此完全不会有干扰项。默认输出就是纯数字 PID,每行一个,拿到手后可以直接传给 killps 等命令。

Linux怎么使用pgrep查找进程ID

直接使用 pgrep 就能干净地获取 PID,无需再写 ps aux | grep 并额外过滤,也避免了 grep 自身进程混入结果的问题。

为什么 pgrep nginxps aux | grep nginx 更可靠

后者的老毛病在于会把 grep nginx 这一行也当作匹配项输出,必须额外加上 grep -v grep 才能剔除;而 pgrep 直接从 procfs 读取进程信息,不创建新进程,天然没有干扰。此外,还有几个细节值得留意:

  • 默认只输出纯数字 PID,每行一个,可直接通过管道传递给 killps 等命令
  • 内核限制进程名最大显示前 15 个字符,ps aux 显示不全,但 pgrep-f 选项可以绕过这个限制
  • 不存在“意外匹配”:比如查询 bashpgrep bash 不会匹配到 bashfulrbash(除非加上 -i 或使用正则)

pgrep -f 匹配完整命令行才是日常刚需

许多服务启动时进程名仍然是 pythonjava,真正区分它们要靠参数。此时只查询进程名根本无法找到目标。而 pgrep -f 能够匹配完整的命令行,在这种场景下才是真正的利器:

  • pgrep -f "python manage.py runserver" → 找到 Django 开发服务器
  • pgrep -f "java.*-jar.*app.jar" → 匹配带 jar 参数的 Java 进程
  • pgrep -f "nginx: worker process" → 区分 master 进程和 worker 进程(注意空格和冒号要写全)
  • 不使用 -f 时,pgrep python 可能返回几十个无关的 Python 进程

按用户、精确名称、数量统计等操作,别硬记参数

实际运维中高频组合就那么几个,记住应用场景比死背选项更有效:

  • 查询某个用户的全部相关进程:pgrep -u www-data nginx
  • 确认是否只有一个实例在运行:pgrep -c nginx 返回 1 才放心
  • 只想杀掉最旧的那个(比如重启后遗留的旧进程):pgrep -o nginx | xargs kill
  • 确保完全匹配进程名,避免误伤:pgrep -x sshd 不会匹配到 sshd_configssh-agent
  • 多个关键词一起查询:pgrep -f "redis|mysql"(注意 shell 会解释管道符,需要加引号)

容易被忽略的细节:分隔符、空格、权限

pgrep 输出默认以换行分隔,但在脚本里拼接命令时可能需要逗号或空格——这时候 -d 就不能省略:

  • pgrep -d, -f "node server.js" → 输出 1234,5678,方便嵌入到 kill 命令中
  • 命令行里有空格或特殊字符(如 ./my script.sh),必须用双引号包裹整个模式,单引号不行(shell 不会展开变量)
  • 普通用户只能查看自己的进程,pgrep -u root 必须用 root 权限执行,否则静默返回空
  • pgrep -P $PID 查询子进程时,如果父进程已退出,结果为空——不是命令错误,而是进程树已经改变
来源:https://www.php.cn/faq/2676184.html
上一篇统信UOS怎么把系统休眠模式改成挂起的方法 下一篇苹果笔记本电脑风扇异响咔哒声清理方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送