1. 程式人生 > >監控Tomcat服務,自動重啟指令碼

監控Tomcat服務,自動重啟指令碼

針對測試環境程式異常關閉,由於測試環境安裝Supervisor太費勁了,就自己寫了一個小指令碼,希望能解決大家的問題,指令碼內容如下:

#!/usr/bin/python
# coding=utf-8
import subprocess
import datetime
import time

App = {"appstock.soa.360buy.com": "/export/Domains/appstock.soa.360buy.com/server1/bin/"}


for key in App.keys():
  command = "ps -ef | grep " + key
   res = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
  tomcats = res.stdout.readlines()
  counts = len(tomcats)
  dt = datetime.datetime.now()
  fp = open("/root/tomcat_app.txt", "a")
  if counts < 3:
  fp.write(key + " stop at %s\n" % dt.strftime("%Y-%m-%d %H:%M:%S"))
  stop = App[key] + "/stop.sh"
  start = App[key] + "/start.sh"
  subprocess.Popen(stop, shell=True)
  time.sleep(10)
  subprocess.Popen(start, shell=True)
 else:
  fp.write(key + " is running at %s\n" % dt.strftime("%Y-%m-%d %H:%M:%S"))
 fp.close()

 

1  App是一個字典,key是程式域名,value是啟動指令碼所在的目錄地址(絕對地址)

2 設定定時任務

   crontab -e

    */5 * * * *  python /root/monitor.py    (指令碼的絕對地址)  如果執行不寫python的話,記得給指令碼可執行的許可權

   如果crontab沒有生效,重啟一下  /etc/init.d/crond restart