Linux终止sh脚本,root权限秒停法

快速终止方法

Ctrl + C(前台进程)

  • 如果脚本正在终端前台运行(直接可见输出):
    • 按下组合键 Ctrl + C 立即终止进程。
    • 适用场景:脚本卡死或需手动中断。

Ctrl + Z + kill(暂停后终止)

  • Ctrl + C 无效:
    1. Ctrl + Z 暂停进程。
    2. 输入 jobs 查看暂停任务的编号(如 [1])。
    3. 终止任务:
      kill %1  # 将1替换为实际任务编号

通过进程ID(PID)终止

查找进程PID

  • 打开新终端,使用 pspgrep 定位进程:

    ps aux | grep "脚本名"  # ps aux | grep test.sh
    • 输出第二列为PID(如 12345)。
  • 或直接使用:

    pgrep -f "脚本名"      # pgrep -f test.sh

用 kill 命令终止

  • 根据PID发送终止信号:
    kill PID              # 默认发送SIGTERM(15),允许进程清理退出
  • 若进程未响应:
    kill -9 PID           # 发送SIGKILL(9)强制终止(慎用)

批量终止相关进程

终止同一脚本的所有进程

   pkill -f "脚本名"       # pkill -f test.sh
  • 或使用 killall
    killall -9 sh         # 终止所有sh进程(谨慎!可能影响其他脚本)

终止子进程

  • 若脚本启动了子进程(如 sleep):
    pkill -P 父进程PID     # 终止指定父进程的所有子进程

特殊场景处理

后台进程终止

  • 启动时添加 & 的脚本(如 sh test.sh &):
    1. jobs 查看后台任务编号。
    2. 终止任务:
      kill %任务编号      # 如 kill %1

进程无响应(僵尸进程)

  • kill -9 无效:
    1. 重启系统或结束父进程(如终端)。
    2. 检查进程状态:
      ps aux | grep defunct

注意事项

  1. 权限要求

    • 普通用户只能终止自己的进程。
    • 系统进程需 sudo 权限:
      sudo kill -9 PID
  2. 信号区别

    • SIGTERM(15):友好终止,允许保存数据。
    • SIGKILL(9):强制终止,可能导致资源未释放(最后手段)。
  3. 生产环境慎用 kill -9

    • 可能引发数据损坏,优先尝试 killpkill

总结步骤

  1. 尝试 Ctrl + C → 无效则用 Ctrl + Z + kill %任务号
  2. 查询PID:ps aux | grep "关键词"pgrep -f "关键词"
  3. 终止进程:kill PID → 顽固进程用 kill -9 PID
  4. 批量操作:pkill -f "脚本名"

引用说明参考Linux内核文档(kernel.org)及《Linux命令行与Shell脚本编程大全》中的进程管理规范,操作前请确认权限,避免误杀系统关键进程。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7470.html

(0)
酷番叔酷番叔
上一篇 2025年7月15日 20:56
下一篇 2025年7月15日 21:08

相关推荐

  • 核心方法如何快速掌握?

    在Java中调用命令行程序是开发中常见的需求,例如执行系统命令、调用外部脚本或启动其他应用程序,Java提供了两种核心方式实现该功能:Runtime.exec()和ProcessBuilder,以下将详细解析这两种方法的使用、差异及最佳实践,Runtime.exec()(传统方式)Runtime类通过exec……

    2025年7月4日
    4700
  • 强制终止程序有多危险?

    强制终止命令是紧急操作,应优先使用正常退出方式(如输入 exit、quit 或按 q),强制终止可能导致数据损坏或程序异常。

    2025年6月17日
    4900
  • 如何覆盖写入不存在的文件?

    在 Shell 环境中输入文字是文件操作和脚本交互的基础功能,以下是6 种核心方法及其详细操作指南,涵盖单行、多行、覆盖和追加等场景:单行文字输入:echo 命令适用场景:快速写入单行内容或变量值# 追加到文件末尾echo "New line" >> output.txt# 写入……

    2025年7月5日
    4700
  • SSH命令如何远程管理Linux?

    SSH基础连接命令基本登录语法ssh username@remote_host_ip示例:ssh admin@192.168.1.100首次连接会提示确认主机指纹,输入yes后继续指定端口连接若服务器使用非默认端口(如2222):ssh -p 2222 user@hostname使用域名连接ssh user@e……

    2025年7月15日
    4100
  • 如何在Mac终端高效编辑文件?

    常用编辑命令及含义nano(新手友好)命令示例:nano 文件名.txt操作说明:打开后直接编辑,底部显示快捷键(如 ^O 保存,^X 退出),支持复制/粘贴(^K 剪切行,^U 粘贴),适用场景:快速修改配置文件(如 ~/.zshrc),vim(高效专业)命令示例:vim 文件名.txt核心模式:普通模式(默……

    2025年6月23日
    5000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信