tomcat宕机自启动
标签(空格分隔): tomcat
文章目录
在tomcat目录下新建shell脚本
#!/bin/sh
# 获取tomcat进程ID /opt/apache-tomcat-7.0.79
TomcatID=`ps aux|grep java|grep -v grep|grep tomcat|awk '{print $2}'`
# tomcat启动程序(这里注意tomcat实际安装的路径)
StartTomcat=/opt/apache-tomcat-7.0.79/bin/startup.sh
# 定义要监控的页面地址
WebUrl=http://www.khzz.org
# 日志输出
TomcatMonitorLog=/opt/apache-tomcat-7.0.79/TomcatMonitor.log
Monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [[ $TomcatID ]];then # 这里判断TOMCAT进程是否存在
echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $WebUrl)
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......"
else
echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode"
echo "[error]页面访问出错,开始重启tomcat"
kill -9 $TomcatID # 杀掉原tomcat进程
sleep 3
# rm -rf $TomcatCache # 清理tomcat缓存
$StartTomcat
fi
else
echo "[error]tomcat进程不存在!tomcat开始自动重启..."
echo "[info]$StartTomcat,请稍候......"
#rm -rf $TomcatCache
$StartTomcat
fi
echo "------------------------------"
}
Monitor>>$TomcatMonitorLog
在bin目录下的catalina.sh下配置环境变量和编码格式
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=/usr/java/jdk1.7.0_79/jre
CATALINA_OPTS=-Dfile.encoding=UTF8
在linux的定时任务中添加
crontab -e
*/3 * * * * /opt/tomcat/bin/check.sh