以下是一个可执行的 Linux 命令脚本,支持优雅停止 Tomcat 服务、等待 30 秒后重启,并包含错误处理机制:

以下是一个可执行的 Linux 命令脚本,支持优雅停止 Tomcat 服务、等待 30 秒后重启,并包含错误处理机制:

bash 复制代码
#!/bin/bash
# 停止 Tomcat 服务(支持多种方式)
sudo systemctl stop tomcat 2>/dev/null || \
sudo service tomcat stop 2>/dev/null || \
/path/to/tomcat/bin/shutdown.sh 2>/dev/null

# 等待30秒并监控进程终止
echo "Waiting for Tomcat to fully stop..."
for i in {1..30}; do
    if ! pgrep -f "catalina" >/dev/null; then
        break
    fi
    sleep 1
done

# 强制终止(如果正常停止失败)
if pgrep -f "catalina" >/dev/null; then
    echo "Force stopping Tomcat..."
    pkill -9 -f "catalina"
    sleep 5
fi

# 重启服务(优先使用系统服务)
echo "Restarting Tomcat..."
sudo systemctl start tomcat 2>/dev/null || \
sudo service tomcat start 2>/dev/null || \
/path/to/tomcat/bin/startup.sh

# 验证服务状态
echo "Checking service status..."
sleep 3
if pgrep -f "catalina" >/dev/null; then
    echo "Tomcat restarted successfully"
else
    echo "Restart failed! Check logs at /path/to/tomcat/logs/catalina.out"
fi

功能说明 :

  1. 多方式停止服务 :优先尝试 systemctlservice 命令(适用于系统服务管理),若失败则调用 Tomcat 自带的 shutdown.sh 脚本
  2. 智能等待机制:30 秒倒计时期间持续监控进程状态,若提前终止则立即继续
  3. 强制终止保障:30 秒后仍有残留进程时自动执行强制终止
  4. 多方式重启:优先使用系统服务管理,兼容直接调用启动脚本
  5. 状态验证:最终会检查进程状态并提示日志查看路径

注意:具体服务名称(如 tomcat/tomcat8)和路径需根据实际环境调整。建议首次运行时添加 -x 参数观察执行流程:bash -x restart_tomcat.sh

相关推荐
威迪斯特7 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.7 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔7 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX7 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞057 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*7 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`7 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
消失的旧时光-19437 小时前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器
晓13137 小时前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
唐装鼠7 小时前
Linux 下 malloc 内存分配机制详解
linux·malloc