用Python脚本监测.py脚本的进程状态,并实现中断重启。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python脚本监测.py脚本的进程状态,并实现中断重启。相关的知识,希望对你有一定的参考价值。

用Python脚本监测.py脚本的执行状态,并实现中断重启。

#!/usr/bin/python
# -*- coding:utf-8 -*-
import subprocess,time,sys

TIME = 10                        #程序状态检测间隔(单位:分钟)
CMD = "get_bjipku.py"                 #需要执行程序的绝对路径,支持jar 如:D:\\calc.exe 或者D:\\test.jar



class Auto_Run():
    def __init__(self,sleep_time,cmd):
        self.sleep_time = sleep_time
        self.cmd = cmd
        self.ext = (cmd[-3:]).lower()        #判断文件的后缀名,全部换成小写
        self.p = None                        #self.p为subprocess.Popen()的返回值,初始化为None
        self.run()                           #启动时先执行一次程序

        try:
            while 1:
                time.sleep(sleep_time * 6)  #休息10分钟,判断程序状态
                self.poll = self.p.poll()    #判断程序进程是否存在,None:表示程序正在运行 其他值:表示程序已退出
                if self.poll is None:
                    print "运行正常"
                else:
                    print "未检测到程序运行状态,准备启动程序"
                    self.run()
        except KeyboardInterrupt as e:
            print "检测到CTRL+C,准备退出程序!"
#            self.p.kill()                   #检测到CTRL+C时,kill掉CMD中启动的exe或者jar程序

    def run(self):
        if self.ext == ".py":
            print ‘start OK!‘
            self.p = subprocess.Popen([‘python‘,‘%s‘ % self.cmd], stdin = sys.stdin,stdout = sys.stdout, stderr = sys.stderr, shell = False)
        else:
            pass
app = Auto_Run(TIME,CMD)


本文出自 “全球互联云主机Q874247458” 博客,请务必保留此出处http://gosweet.blog.51cto.com/11759495/1914444

以上是关于用Python脚本监测.py脚本的进程状态,并实现中断重启。的主要内容,如果未能解决你的问题,请参考以下文章

linux下监测进程是否存在

1python脚本——监测服务器状态

没有STDOUT的两个python脚本之间的进程间通信

Shell脚本完成用户磁盘空间监测报告

shell脚本监测进程并重启

Linux下实现脚本监测特定进程占用内存情况