在linux系统中。我们经常会遇到各种各样,tomcat停止服务的问题。
这里解决方案:(1)用shell写一个for循环,检查tomcat进程ID的脚本是否存在,如果不存在就重启tomcat服务。(推荐)
(2)写一个重启tomcat的shell脚本,然后用crontab定时执行这个脚本即可。
那么定时启动tomcat的实现如下:
1.首先shell脚本
#!/bin/sh export JAVA_HOME=/usr/java/jdk1.6.0_26 pid=`ps -auxww|grep tomcat|grep -v grep|awk '{print $2}'` echo $pid if [ -n "$pid" ]; then { echo "==========tomcat is start============" '/usr/server/tomcat-7.0.27/bin/shutdown.sh' sleep 5 '/usr/server/tomcat-7.0.27/bin/shutdown.sh' sleep 15 pid=`ps -auxww|grep tomcat|grep -v grep|awk '{print $2}'` if [ -n "$pid" ]; then { echo "======to kill the tomcat pid $pid========" kill $pid sleep 3 } fi echo "==========start tomcat============" '/usr/server/tomcat-7.0.27/bin/startup.sh' } else { echo "==========tomcat is stop=====start=======" '/usr/server/tomcat-7.0.27/bin/startup.sh' } fi
或者简单的重启的tomcat的shell脚本。如下
#!/bin/sh tomcat_home=/opt/apache-tomcat-6.0.32 #找到tomcat进程的id并kill掉 ps -ef |grep tomcat |awk {'print $2'} | sed -e "s/^/kill -9 /g" | sh - #删除日志文件,如果你不先删除可以不要下面一行 rm $tomcat_home/logs/* -rf #删除tomcat的临时目录 rm $tomcat_home/work/* -rf #启动tomcat $tomcat_home/bin/startup.sh #看启动日志 tail -f $tomcat_home/logs/catalina.out
2.在新建任务计划:利用crontab -e命令,于02:00执行重启服务。
10 02 * * * /usr/server/tomcat-7.0.27/bin/startup.sh
3.启动crond服务 命令如下
3.启动定时服务 [root@]# service crond stop [root@]# service crond start 4.查看该任务是否在定时列表里面: [root@]# crontab -l 10 02 * * * /usr/server/tomcat-7.0.27/bin/startup.sh