tomcat 定时重启

tomcat 定时重启

1.编写脚本

su - tomcat

tomcat@u1abomap02 \~$ ls

restart_tomcat_gosi.sh tomcat_gosi.log

bash 复制代码
vi restart_tomcat_gosi.sh 


#!/bin/bash

# 定义日志目录
LOG_DIR="/home/tomcat"
LOG_FILE="$LOG_DIR/tomcat_gosi.log"


# 设置环境变量(关键)
export JAVA_HOME=/usr/local/jdk1.6.0_43
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH

# 记录环境信息用于调试
echo "$(date): Starting restart script. JAVA_HOME=$JAVA_HOME, PATH=$PATH" >> "$LOG_FILE"

# 查找进程 ID
PID=$(pgrep -f "tomcat-gosi.*10.26.203.95")

# 检查是否找到进程
if [ -n "$PID" ]; then
    echo "$(date): Killing process with PID: $PID" >> "$LOG_FILE"
    kill -9 $PID
    if [ $? -eq 0 ]; then
        echo "$(date): Process $PID killed successfully." >> "$LOG_FILE"
    else
        echo "$(date): Failed to kill process $PID." >> "$LOG_FILE"
    fi
    sleep 5
else
    echo "$(date): No process found for tomcat-gosi with IP 10.26.203.95." >> "$LOG_FILE"
fi


# 重启 Tomcat 直到成功启动
MAX_ATTEMPTS=5
attempt=1


while [ $attempt -le $MAX_ATTEMPTS ]; do
    echo "$(date): Starting Tomcat (Attempt $attempt of $MAX_ATTEMPTS)..." >> "$LOG_FILE"
    sh /soft/tomcat-gosi/bin/startup.sh >> "$LOG_FILE" 2>&1
    # 等待启动
    sleep 10

    # 判断是否真正在运行
    if pgrep -f "tomcat-gosi.*10.26.203.95" > /dev/null; then
        echo "$(date): Tomcat is running." >> "$LOG_FILE"
        exit 0
    else
        echo "$(date): Failed to start Tomcat (process not found)." >> "$LOG_FILE"
        # 输出 Tomcat 错误日志片段
        echo "$(date): Last 10 lines of catalina.out:" >> "$LOG_FILE"
        tail -n 10 /soft/tomcat-gosi/logs/catalina.`date +%Y-%m-%d`.out >> "$LOG_FILE" 2>&1 || echo "catalina.out not accessible" >> "$LOG_FILE"
    fi


    #if [ $? -eq 0 ]; then
    #    echo "$(date): Tomcat started successfully." >> "$LOG_FILE"
    # 成功启动后退出脚本
    #   exit 0  
    #else
    #    echo "$(date): Failed to start Tomcat on attempt $attempt." >> "$LOG_FILE"
    #fi

    attempt=$((attempt + 1))
     # 等待 5 秒再重试
    sleep 5  
done

echo "$(date): Tomcat failed to start after $MAX_ATTEMPTS attempts." >> "$LOG_FILE"
# 超过最大尝试次数后退出脚本
exit 1  

2.创建定时任务

sh 复制代码
[tomcat@u1abomap02 ~]$ crontab -l
35 7 * * 1-5   /home/tomcat/restart_tomcat_gosi.sh
相关推荐
一只积极向上的小咸鱼43 分钟前
Codex Remote SSH / Dev Container 无限转圈与 GPT-6 可用问题排查总结
运维·gpt·ssh
智塑未来1 小时前
自动化立体库工业无线通信:AGV、AMR、RGV、穿梭车、无人叉车、堆垛机全覆盖
运维·自动化
Elastic 中国社区官方博客3 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
bwz999@88.com3 小时前
Ubuntu Server 24.04 设置中文
linux·运维·ubuntu
Cx330❀4 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
志栋智能4 小时前
运维超自动化的变更管理实践
运维·自动化
全栈攻略4 小时前
Docker 中 ROS2 工作流 Topic 验证与常用命令指南
运维·docker·容器
Gl�ria4 小时前
Linux 清理日志常用命令
linux·运维·服务器
j7~6 小时前
【Linux网络加餐(二)】《进程组,会话,控制终端,作业控制和守护进程》---详解
linux·运维·服务器·守护进程·会话·进程组·控制终端