天天看點

linux下監控tomcat自動重新開機

很多時候,當linux伺服器挂了後重新開機後,tomcat伺服器卻還沒重新啟動導緻項目網站無法通路,下面來解決一下這個問題

1.使用yum安裝crontab服務,這是一個定時器服務,可以自己設定時間,多久監控一下tomcat伺服器是不是挂了,如果挂了,它會讓它重新啟動起來。

安裝指令:yum install vixie-cron

安裝完成後,使用一下指令看看:

/sbin/service crond start     //啟動服務

/sbin/service crond stop     //關閉服務

/sbin/service crond restart     //重新開機服務

/sbin/service crond reload      //重新載入配置

檢視crontab服務狀态:service crond status

手動啟動crontab服務:service crond start

先啟動crond 服務,然後再檢視status,如下圖使用:service crond status檢視,is running說明正常running

linux下監控tomcat自動重新開機

2.檢視crontab服務是否已設定為開機啟動,執行指令:ntsysv

在linux上面直接輸入指令後,會出現如下界面:

linux下監控tomcat自動重新開機

上面為服務清單,可以看到crond的服務,帶*号的說明服務是開機啟動的,你可以按鍵盤的上下鍵選擇服務,然後使用空格鍵設定帶*号or不帶,也就是是否開機啟動,然後按tab鍵可以從上面的服務清單切換到下面的确定和取消,同樣是按空格鍵選擇确定和取消。

3.寫shell監控語句

#!/bin/sh
basePath=$(cd $(dirname $0);pwd)
echo ""
echo "####################begin check####################"
for tomcat in $(ls -F|grep /$|grep tomcat);
do
        if [ -z  "$(ps -ef|grep $basePath/$tomcat |grep java)" ];then
                echo "$tomcat is not run!"
                sh $tomcat/bin/startup.sh &
                echo `date +'%Y-%m-%d %H:%M:%S'` "$tomcat start!" >> $basePath/check.log
        fi
done;
echo "####################end check####################"
echo ""
           

這個是一個demo的監控語句,各位覺得不好也可以重新寫。touch一個xxx.sh檔案,檔案名自己取,我的是叫check.sh,然後将上面語句寫到裡面去。

然後将其檔案放在和你的tomcat同一個檔案目錄下面,如下圖:

linux下監控tomcat自動重新開機

4.将shell執行程式加到定時器裡面去,也就是上面安裝的那個crontab服務。

執行指令:crontab -e    然後會進入到一個文本編輯狀态裡面去,然後将其下面語句寫到目前進入的這個文本裡面去

指令為:*/1 * * * * sh /usr/local/tomcat/check.sh

指令前面的1為時間,也就是1分鐘,/usr/local/tomcat/check.sh是你寫的shell監控程式check.sh文本的位址,copy完這個指令後就可以了儲存退出了。然後現在全部都ok了,啟動crontab服務讓它運作去吧。

繼續閱讀