Linux如何批量管理进程 pkill和pgrep命令使用指南

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命令使用指南

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

Linux如何批量管理进程 pkill和pgrep命令使用指南


一、什么是pgrep?如何用它查找进程?

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

Linux如何批量管理进程 pkill和pgrep命令使用指南

常见用法:

  • 查找某个程序的所有进程:

    Linux如何批量管理进程 pkill和pgrep命令使用指南

    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 myprocess pkill myprocess

四、进阶技巧:按用户或终端筛选进程

除了按名字和命令行筛选外,这两个命令还支持更复杂的过滤条件。

按用户筛选:

pgrep -u www-data apache2

这条命令会列出属于 www-data 用户的 apache2 进程。

按终端会话筛选:

pgrep -t pts/0

可以查看当前终端会话中的活跃进程。

这些功能在排查他人运行的任务或清理闲置会话时特别有用。


基本上就这些了。熟练掌握 pgrep 和 pkill,能让你在日常运维或调试过程中省下不少时间。虽然它们看起来简单,但在批量处理进程时非常高效,也容易集成到脚本中自动执行任务。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享