You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何终止nohup命令启动的运行中进程?批量停止nohup脚本进程方案

嘿,我来帮你搞定终止nohup启动进程的问题,不管是单个还是批量运行的nohup ./filename.sh进程,都有清晰的操作步骤:

终止单个nohup启动的进程

如果你只需要终止某一个特定的进程,按下面两步来:

  • 第一步:找到进程的PID(进程ID)
    用ps命令过滤出目标进程,比如执行:
    ps aux | grep "./filename.sh" | grep -v grep
    
    输出结果里第二列的数字就是这个进程的PID。(加grep -v grep是为了排除掉grep命令本身的进程,避免干扰)
  • 第二步:终止进程
    先用普通的kill命令尝试终止:
    kill <你的进程PID>
    
    如果进程没响应(比如卡住了),就用强制终止命令:
    kill -9 <你的进程PID>
    
批量终止大量nohup ./filename.sh进程

当有一堆同类进程需要终止时,没必要一个个找PID,用下面几种高效的方法:

  • 方法一:ps + xargs组合拳
    这条命令会自动筛选出所有目标进程的PID,然后批量终止:
    ps aux | grep "./filename.sh" | grep -v grep | awk '{print $2}' | xargs kill -9
    
    简单解释下:awk '{print $2}'是提取输出里的PID列,xargs把这些PID挨个传给kill -9命令。
  • 方法二:用pkill精准匹配
    这是更简洁的方式,-f参数会匹配整个命令行,确保只终止你要的./filename.sh进程:
    pkill -f "./filename.sh"
    
    需要强制终止的话,加上-9:
    pkill -9 -f "./filename.sh"
    
  • 方法三:killall(需谨慎使用)
    如果你的脚本filename.sh没有和系统其他进程重名,也可以用:
    killall -9 filename.sh
    
    注意:如果系统里有其他同名的进程,killall会把它们一起杀掉,所以优先用pkill更安全。

小提醒

  • 执行这些命令前,最好先跑一遍ps aux | grep "./filename.sh" | grep -v grep,确认下要终止的进程列表,避免误杀重要进程。
  • 普通用户只能终止自己启动的进程,如果是其他用户的进程,需要加sudo权限。
  • 尽量先用不带-9的终止命令,给进程留时间清理资源;只有当进程完全没响应时,再用强制终止。

内容的提问来源于stack exchange,提问作者Manish Chahal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:22:31