针对测试环境程序异常关闭,由于测试环境安装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