Linux Tomcat自動檢測、重啟 客戶的機器有時遇見宕機的情況,雖然我在Linux伺服器上配置了Tomcat自啟動程式,可以在機器重啟的時候自動部署web應用。但是,當資料庫伺服器與Web應用伺服器不能同時啟動的時候,Tomcat啟動項目就失敗了。最後,寫了shell指令碼,來自動判斷是否有tomcat進程,如果沒有的話,就重啟tomcat,否則,不執行任何操作,並將tomcat開機記錄寫到檔案裡。指令碼如下:Java代碼 #/bin/bash ############################################# # author zhao yanan # date 2010/08/23 # update 2011/01/10 # Automatic detection and restart tomcat ############################################# #指令碼可寫入到自動任務中,執行循環可根據tomcat起停時間長短來定,如下,每天0點到20點之間每隔10分鐘檢查一次 #echo "*/3 0-24 * * * root /root/script/tomcat_check.sh >> /root/script/tomcat_check.log 2>&1" >> /etc/crontab echo ======================================== date PROCESS_NUM=`ps -ef | grep tomcat | grep -v "grep" | wc -l` if [ $PROCESS_NUM -lt 1 ]; then # 判斷是否有Tomcat進程,如果沒有,則執行接下來的任務,否則執行else後的任務。 # java Environment variables #設定jdk的環境變數,根據自已的實際情況設定 export JAVA_HOME=/usr/local/jdk1.6.0_25 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export CATALINA_HOME=/usr/local/tomcat echo "restart tomcat." ${CATALINA_HOME}/bin/shutdown.sh #關閉tomcat sleep 5 #等待tomcat關閉,一般是1~150s不等 kill -9 `ps aux|grep "/usr/local/tomcat"|grep -v grep|awk '{print $2}'` #等待時間結束後,償試強制結束tomcat進程 sleep 5 ${CATALINA_HOME}/bin/catalina.sh run sleep 5 else echo "checked." #首頁下載成功,提示已檢查 fi