如何终止nohup命令启动的运行中进程?批量停止nohup脚本进程方案
嘿,我来帮你搞定终止nohup启动进程的问题,不管是单个还是批量运行的nohup ./filename.sh进程,都有清晰的操作步骤:
终止单个nohup启动的进程
如果你只需要终止某一个特定的进程,按下面两步来:
- 第一步:找到进程的PID(进程ID)
用ps命令过滤出目标进程,比如执行:
输出结果里第二列的数字就是这个进程的PID。(加ps aux | grep "./filename.sh" | grep -v grepgrep -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 -9awk '{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会把它们一起杀掉,所以优先用pkill更安全。killall -9 filename.sh
小提醒
- 执行这些命令前,最好先跑一遍
ps aux | grep "./filename.sh" | grep -v grep,确认下要终止的进程列表,避免误杀重要进程。 - 普通用户只能终止自己启动的进程,如果是其他用户的进程,需要加
sudo权限。 - 尽量先用不带
-9的终止命令,给进程留时间清理资源;只有当进程完全没响应时,再用强制终止。
内容的提问来源于stack exchange,提问作者Manish Chahal
相关产品推荐
相关产品推荐

