1. 程式人生 > >(tomcat) java程序監控及守護

(tomcat) java程序監控及守護

Linux伺服器下需要監控某些程序的狀態. 當程序不存在時, 自動啟動, 當程序異常時, 自動重啟.

以tomcat為例

1. 編寫監控指令碼(/data/bin/monitor.sh)

#!/bin/sh
#載入環境變數
#ALL
source /etc/profile

#MINE
source ~/.bash_profile

#程序標識(此處以路徑作為標識)
TOMCAT_PATH=/root/tools/server

############重啟服務
function restartServer(){
    #殺死程序
    if [ "" != "$1" ]
    then
        echo "kill the process"
        kill -9 $1
        sleep 2
    fi

    #重啟程序指令碼
    cd "$TOMCAT_PATH/bin"
    echo "restart the process `pwd`/startup.sh"
    sh startup.sh

    #結束
    echo "done!!!"
}

#列印指令碼時間
monitorDate=`date "+%Y-%m-%d %H:%M:%S"`
echo -e "\n---------------Monitor at [$monitorDate]"

#獲取程序pid
pid=`ps -ef|grep $TOMCAT_PATH|grep java|grep -v grep|awk '{print $2}'`
echo "PID: $pid"
if [ "" == "$pid" ]
then
    echo "ERROR: pid not found"

    #啟動服務
    restartServer
    exit
else
    # 程序存在的情況下的處理
    # restartServer $pid
fi

新增執行許可權 

chmod +x monitor.sh

2. 部署crontab(定時執行, 每5分鐘執行一次)

crontab -e

*/5 * * * * /data/bin/monitor.sh >> /data/bin/minitor.log 2>&1


3. 觀察日誌檔案是否有報錯

tail -100f /data/bin/minitor.log