監控Tomcat服務,自動重啟指令碼
阿新 • • 發佈:2018-11-03
針對測試環境程式異常關閉,由於測試環境安裝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