pgrep用于查找进程,pkill用于终止进程。pgrep通过名称或命令行参数查找运行中的进程并输出pid,例如pgrep nginx;加上-l可显示命令名,-f匹配完整命令行,-i忽略大小写。pkill则向匹配的进程发送信号,默认为sigterm终止进程,也可用-9强制结束,如pkill nginx或pkill -f “python app.py”。使用前建议先用pgrep确认目标。两者还可组合使用,如pgrep统计进程数、保存pid再执行pkill。此外,支持按用户-u和终端-t筛选进程,便于管理特定用户的任务或会话。

在Linux系统中,当你需要批量管理进程时,pkill 和 pgrep 是两个非常实用的命令行工具。它们可以帮助你快速查找、过滤并终止符合条件的进程,尤其适合处理多个同名或相关进程的情况。

一、什么是pgrep?如何用它查找进程?
pgrep 的作用是根据名称或其他属性查找正在运行的进程,并输出它们的PID(进程ID)。

常见用法:
查找某个程序的所有进程:

pgrep nginx
显示进程的PID和对应的命令名:
pgrep -l nginx
匹配完整的命令行参数(不只是进程名):
pgrep -f "python app.py"
小技巧:如果你不确定进程名是否完全匹配,可以结合 -i 参数忽略大小写,比如 pgrep -i chrome。
二、pkill怎么用?一键批量结束进程
pkill 可以看作是 pgrep 的“执行版”,它不仅查找进程,还会向找到的进程发送信号,默认是 SIGTERM,也就是正常终止。
基本操作:
结束所有名为nginx的进程:
pkill nginx
根据完整命令行参数来终止进程:
pkill -f "python app.py"
如果进程不响应默认信号,可以用 -9 强制终止:
pkill -9 node
注意事项:
使用前建议先用
pgrep确认目标进程,避免误杀。在生产环境中慎用-9,除非确定进程卡死。
三、组合使用pgrep和pkill实现更灵活控制
虽然 pkill 本身已经很强大,但有时候你想对查找到的进程做更多操作,比如统计数量、记录日志等,这时候就可以把 pgrep 的结果传给其他命令处理。
示例场景:
统计某个服务的进程数:
pgrep nginx | wc -l
把查到的进程保存下来备用:
pgrep -f "java -jar myapp.jar" > pids.txt
先查看再批量结束(推荐做法):
pgrep -l myprocesspkill myprocess
四、进阶技巧:按用户或终端筛选进程
除了按名字和命令行筛选外,这两个命令还支持更复杂的过滤条件。
按用户筛选:
pgrep -u www-data apache2
这条命令会列出属于 www-data 用户的 apache2 进程。
按终端会话筛选:
pgrep -t pts/0
可以查看当前终端会话中的活跃进程。
这些功能在排查他人运行的任务或清理闲置会话时特别有用。
基本上就这些了。熟练掌握 pgrep 和 pkill,能让你在日常运维或调试过程中省下不少时间。虽然它们看起来简单,但在批量处理进程时非常高效,也容易集成到脚本中自动执行任务。
以上就是Linux如何批量管理进程 pkill和pgrep命令使用指南的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/10394.html
微信扫一扫
支付宝扫一扫