Linux Tomcat自动检测、重启
Linux Tomcat自动检测、重启
Linux Tomcat自动检测、重启
客户的机器有时遇见宕机的情况,虽然我在Linux服务器上配置了Tomcat自启动程序,可以在机器重启的时候自动部署web应用。但是,当数据库服务器与Web应用服务器不能同时启动的时候,Tomcat启动项目就失败了。最后,写了shell脚本,来自动判断是否有tomcat进程,如果没有的话,就重启tomcat,否则,不执行任何操作,并将tomcat启动日志写到文件里。脚本如下:
Java代码
#/bin/bash
#############################################
# author zhao yanan
# date 2010/08/23
# update 2011/01/10
# Automatic detection and restart tomcat
#############################################
#脚本可写入到自动任务中,执行周期可根据tomcat起停时间长短来定,如下,每天0点到20点之间每隔10分钟检查一次
#echo "*/3 0-24 * * * root /root/script/tomcat_check.sh >> /root/script/tomcat_check.log 2>&1" >> /etc/crontab
echo ========================================
date
PROCESS_NUM=`ps -ef | grep tomcat | grep -v "grep" | wc -l`
if [ $PROCESS_NUM -lt 1 ]; then # 判断是否有Tomcat进程,如果没有,则执行接下来的任务,否则执行else后的任务。
# java Environment variables #设置jdk的环境变量,根据自已的实际情况设定
export JAVA_HOME=/usr/local/jdk1.6.0_25
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CATALINA_HOME=/usr/local/tomcat
echo "restart tomcat."
${CATALINA_HOME}/bin/shutdown.sh #关闭tomcat
sleep 5 #等待tomcat关闭,一般是1~150s不等
kill -9 `ps aux|grep "/usr/local/tomcat"|grep -v grep|awk '{print $2}'` #等待时间结束后,偿试强制结束tomcat进程
sleep 5
${CATALINA_HOME}/bin/catalina.sh run
sleep 5
else
echo "checked." #首页下载成功,提示已检查
fi
评论暂时关闭