1. 程式人生 > >守護程序監控tomcat並自動重啟

守護程序監控tomcat並自動重啟

昨天的tomcat問題,一天掛了3,4回,受不了了決定寫個監控tomcat程序並自動重啟的指令碼!

在網上查資料,主要分為兩類:一類是定時重啟tomcat,這當然不是我需要的,另一類是監控並重啟,不過也有好幾個版本,我綜合比較後(主要是這篇http://hi.baidu.com/tedzhangzhe/item/4afd87aa1cf2d1f215329b8a),刪除了些不需要的內容,並將程式碼修改如下:

###########################################
# author
# date 2014/05/19
# update 2014/05/19
# Automatic detection and restart tomcat
############################################ 


echo ========================================
date
cd /usr/local/share/tomcat7/bin/script
rm -f main.jsp
 wget -T 10 -t 3 -q http://10.0.210.100:8080/pmonitor/main.jsp
if [ ! -e main.jsp ]; then
        echo "restart tomcat."
        export JAVA_HOME=/usr/local/java/jdk1.6.0_37

        /usr/local/share/tomcat7/bin/shutdown.sh
        sleep 10
        kill -9 `ps aux|grep "/usr/local/share/tomcat7"|grep -v grep|awk '{prin        t $2}'`
        sleep 5
        /usr/local/share/tomcat7/bin/startup.sh
else
        echo "checked."
fi

1、將程式碼複製到monitor.sh的文件中,並放入usr/local/share/tomcat7/bin中(路徑是自己選的,若修改路徑,將程式碼中相關內容替換為新路徑就行了)。

2、sudo chmod a+x monitor.sh加許可權。

3、sudo crontab -e,在文件末尾新增*/2 * * * * /usr/local/share/tomcat7/bin/monitor.sh,意思是全天範圍內每2分鐘執行一次這個指令碼。

其中,我明明在.bashrc檔案中設定過了JAVA_HOME環境變數,可是執行時還是報錯,提示Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

,所以不得已在程式碼中加入了export JAVA_HOME=/usr/local/java/jdk1.6.0_37又定義了一遍,有知道為什麼的請指教哈。

測試環節:人工關閉tomcat後,2分鐘後ps -ef |grep tomcat,又自動啟動了,成功。

總結一下,這篇程式碼的方法不是直接監控tomcat埠,而是通過wget傳輸檔案來測試,我們都知道wget是可以走http協議的,正好可以經過tomcat來測試服務是否有效,很巧妙的應用!同理也可做其他服務的監控。


相關推薦

守護程序監控tomcat自動

昨天的tomcat問題,一天掛了3,4回,受不了了決定寫個監控tomcat程序並自動重啟的指令碼! 在網上查資料,主要分為兩類:一類是定時重啟tomcat,這當然不是我需要的,另一類是監控並重啟,不過也有好幾個版本,我綜合比較後(主要是這篇http://hi.baidu.c

linux 程序守護監控自動

1、[下載](http://cr.yp.to/daemontools.html daemontools)daemontools安裝包 2、安裝 tar xvzf daemontools-0.76.tar.gz cd admin/daemontools-0.76 package/in

用Shell指令碼定時監控Linux下的程序狀態自動

以mysql為例,先上shell指令碼,如下: #!/bin/bash ps -ef | grep mysqld | grep -v grep if [ $? -ne 0 ] then echo “start process…” /etc/rc.d/init.d

Linux下Tomcat實時監控自動

由於專案時常出現記憶體不足,然後造成服務掛掉,由於公司成本考慮,和戰略轉移,不能在硬體上進行升級,但還要保證服務的穩定執行,因此寫了個shell指令碼來對服務進行實時監控,並在掛掉的情況下實現自動重啟。 指令碼程式碼 注意事項 一、指令碼寫好後要進行命名,一定要

ZABBIX配置自動添加端口監控觸發服務

color 監控 style 1、配置自動發現腳本 #!/bin/bash # ------------------------------------------------------------------------------- # Script_name: discovery

shell監控網站是否自動運行自動【原創】

自動重啟 aid func 服務腳本 date null com 監控網頁 moni shell監控網站是否自動運行並自動重啟 #!/bin/bash wget --spider -q -o /dev/null --tries=1 -T 5 www.baidu.co

monit 監控自動服務

Monit是一款功能非常豐富的程序、檔案、目錄和裝置的監測軟體,用於Unix平臺。 它可以自動修復那些已經停止運作的程式,特使適合處理那些由於多種原因導致的軟體錯誤。monit運行於應用層 安裝很簡單,三部曲 #./configure #make #make install

supervisor監聽程式碼的改動,自動nodejs

問題: 在開發nodejs實現的HTTP WEB應用的時候,無論你修改程式碼的那一部分,都必須終止nodejs,再重新執行才奏效。 原因: nodejs只有在第一次引用到某部分時候才去解析指令碼檔案,以後都會直接訪問記憶體,避免重複載入,而PHP則總是重新讀取並解析指令碼(如果沒

監測指令碼程序,結束後自動

①新建一個指令碼 #!/bin/bash count=`ps -fe |grep "/opt/AutowaterBJ/start.php" | grep -v "grep" | grep "

linux下實現tomcat定時自動

        tomcat自帶的指令碼中沒有提供直接restart的模式,但是有start和shutdown兩種模式。要實現restart模式,實際上只需要判斷是否已經啟動tomcat,若已經啟動則限制性shutdown,然後在執行start。或者通過ps aux查詢出是

監控Tomcat服務,自動指令碼

針對測試環境程式異常關閉,由於測試環境安裝Supervisor太費勁了,就自己寫了一個小指令碼,希望能解決大家的問題,指令碼內容如下: #!/usr/bin/python # coding=utf-8 import subprocess import datetime import time

windows下監控程序自動

監控redis @echo off       set Program="redis-server.exe"   tasklist -v | findstr %Program% > NUL   if ErrorLevel 1 (     echo "程序不存在" &g

在windows 上自動 tomcat 的方法

下載 ech num 指定時間 重啟 set restart family blog 在windows 上自動重啟 tomcat 的方法 實現思路: Windows 上監控tomcat 進程並且自動重啟的腳本 一類是 定時重啟 tomcat 一類是 監控並重啟 寫一個守護t

linux kafka程序掛了 自動

使用crontab,定時監控 kafka程序,發現掛了後重啟。 shell指令碼如下: #!/bin/sh source /etc/profile proc_dir="/data/kafka" # 程式目錄 pro

監控伺服器程式,掛掉後自動

1、定時呼叫ps,檢查程式是否活著。如果不在了就啟動程式 #!/bin/bash name=$1 while true do         c=`ps -x | grep $name | grep -v grep

Tomcat Docker容器自動問題排查

1. 問題 前兩天發現 APP 重新整理資料偶爾出現等半天沒有響應的情況,感覺不像 APP 的問題,就查了下服務端的日誌。 服務端用的是 Java,部署採用的 Docker 官方的 tomcat 映象,並進行了基本的裁剪,Dockerfile 檔案內容如下:

SHELL指令碼實現服務宕機監控自動

需要先安裝 yum install stat  crontabs (本例項在centos系統下) #!/bin/bash #Shell ##根據修改檔案時間進行監控## content=`ls -l /tmp/log.txt | awk '{ print $5 }'`  

Tomcat自動指令碼

我做過的Tomcat自動重啟其實是讓Windows系統的任務計劃程式來實現觸發的,先讓Tomcat自動關閉,然後讓Tomcat自動啟動,這樣就是自動重啟了。 一、編寫指令碼 指令碼如下: 自動關閉指令碼:tomcat_stop.bat @echo off echo 執行開始時間 da

tomcat宕機自動和每日定時啟動tomcat【工具包系列】

在專案後期維護中會遇到這樣的情況,tomcat在記憶體溢位的時候就出現宕機的情況和遇到長時間不響應,需要人工手動關閉和重啟服務,針對這樣的突發情況,希望程式能自動處理問題而不需要人工關於,所以才有了目前的需求。 一、設定tomcat定時啟動 1,首先將tomcat註

Linux 下python 利用supervisord自動程序

1、安裝supervisord 利用SecureCRT進入Linux環境,輸入python,進入python shell環境,import  supervisor看是否安裝了supervisord,若沒有安裝, yum install python-setuptools