Tomcat 进程定时检查,并启动shell脚本
tomcat 启动管理,有时可能是因为断电的原因,tomcat应用停掉了,我们可以设置tomcat自启动的方式来启动tomcat,有时是因为内存溢出获取其他原因,导致tomcat进程被杀,这种情况下,开机启动tomcat方式就不能用了,使用定时检查tomcat进程是否存活是一个解决方案,具体操作如下:
- 编写定时检查tomcat进程的shell脚本 tomcatCheck.sh
#!/bin/sh
# tomcat启动程序
StartTomcat="/home/admin/local/app/apache-tomcat-7.0.65/bin/startup.sh"
TomcatCache="/home/admin/local/app/apache-tomcat-7.0.65/work"
TomcatID=$(ps -ef |grep tomcat |grep -w '/home/admin/local/app/apache-tomcat-7.0.65/conf'|grep -v grep| awk '{print $2}')
#TomcatID=$(ps -ef |grep tomcat |grep -v grep|awk '{print $2}')
if [ -n "$TomcatID" ];then
#if ps -ef | grep tomcat | grep -v grep
#then
echo "tomcat already running..."
echo "当前tomcat进程号为${TomcatID}"
else
rm -rf ${TomcatCache} #清理tomcat缓存
${StartTomcat}
echo "start process tomcat"
fi
- 设置定时任务,定时执行上面的脚本,通过crontab:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# 每隔五分钟执行一次
*/15 * * * * root /usr/bash/tomcatCheck.sh