公司穷逼,分配的服务器总是时不时的挂一次,测试会不停的打扰我,让我帮忙重启一下服务。忍无可忍终于发飙写了一个脚本用来自动重启。以上是背景。
这个脚本的功能:1.监测tomca进程是否存在2若tomcat不存在 则自动重启。
以下是脚本文件
import subprocess
import datetime
res = subprocess.Popen("ps -ef | grep tomcat",stdout=subprocess.PIPE,shell=True)
tomcats=res.stdout.readlines()
counts=len(tomcats)
if counts< 5:
dt=datetime.datetime.now()
fp=open('/app/tomcat6.txt',"a")
fp.write("tomcat6 stop at %s\n" % dt.strftime("%Y-%m-%d %H:%M:%S"))
fp.write("tomcats ====")
fp.write(str(counts))
fp.close()
subprocess.Popen("/app/news-tomcat/bin/startup.sh",shell=True)
~
需要注意的是:
1.grep的字段是能够识别目标进程的字段如果挂的服务多的化,需要能够识别出来
2. count<5这一句 是tomcat 的5这个数据需要自己调整
3.crontab -e 然后会打开编辑器 编辑以下多长时间检查一次
4.执行最后一句重启的时候可能会报找不到JAVA_HOME, JRE_HOME,不要紧,打开
vim catalina.sh
头部加入
export JAVA_HOME=/home/gongzi/http/jdk1.6.0_26 export JRE_HOME=/home/gongzi/http/jdk1.6.0_26/jre