在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