#!/bin/sh
#@desc:检查tomcat是否运行,如果已停止,则尝试启动;
#(1)若请求成功,则认为tomcat启动成功,跳出循环。
#(2)若请求失败,sleep 5分钟后再次请求
#(3)尝试3次,若还是请求失败,则认为tomcat启动失败,终止程序
# 尝试重启次数
retryCount=3
# sleep时长,单位:秒
sleepSS=300
# 应用URL路径
httpCheckUrl=http://ip:port/xxx
# 应用启动脚本路径
startShell=xxx/software/apache-tomcat-8.5.61/bin/startup.sh
# 日志文件路径
logFileName=xxx/software/apache-tomcat-8.5.61/logs/catalina.out
echo "———————————————–检查tomcat运行状态开始———————————————–" >> $logFileName
for (( i=1; i<=$retryCount; ++i ))
do
if [ $(curl -sIL -w "%{http_code}" -o /dev/null $httpCheckUrl) -eq 200 ];then
echo "———————————————–tomcat正常———————————————–" >> $logFileName
break
else
if [[ i -eq $retryCount ]];then
echo "tomcat启动失败,请查看tomcat日志" >> $logFileName
exit 1
else
sh $startShell
echo "tomcat正在启动中..." >> $logFileName
sleep $sleepSS
fi
fi
done
echo "———————————————–检查tomcat运行状态结束———————————————–" >> $logFileName