插件窝 干货文章 linux之怎么停止正在执行的脚本

linux之怎么停止正在执行的脚本

脚本 终止 使用 bash 554    来源:    2025-04-27

如何停止正在执行的Linux脚本

在Linux中停止正在运行的脚本有几种方法,以下是常用的几种方式:

1. 使用Ctrl+C组合键

这是最简单直接的方法: - 在脚本运行的终端中按下 Ctrl + C - 这会发送SIGINT信号,通常会导致脚本立即终止

2. 使用kill命令

如果脚本在后台运行或无法通过Ctrl+C停止: 1. 首先找到脚本的进程ID: bash ps aux | grep script_name.sh 或使用更精确的方式: bash pgrep -f script_name.sh

  1. 然后终止进程: bash kill -9 PID 其中PID是上一步找到的进程ID

3. 使用pkill命令

如果知道脚本名称,可以直接使用:

pkill -f script_name.sh

4. 使用killall命令

终止所有同名进程:

killall script_name.sh

5. 对于系统服务脚本

如果是作为服务运行的脚本:

sudo systemctl stop service_name

注意事项

  • kill -9 (SIGKILL)是强制终止,不会给进程清理的机会,可能导致资源未释放
  • 先尝试普通终止kill PID,如果无效再使用kill -9 PID
  • 对于重要的生产环境脚本,建议实现脚本内部的优雅退出机制

预防措施

为避免脚本无法停止的情况,可以在脚本中实现信号处理:

#!/bin/bash

# 捕获退出信号
trap "echo '脚本被终止'; exit" SIGINT SIGTERM

# 脚本主体
while true; do
    echo "运行中..."
    sleep 1
done

这样可以确保脚本在被终止时有机会执行清理工作。