用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)
时间: 2024-08-05 20:19:51

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

pyinstaller对py脚本进行打包(生成windows可执行程序)

这个没有什么截图,主要步骤如下: a. 安装python-2.7-x64版本(我的系统是win7-x64) b. 下载PyInstaller-2.1 x64版本 c. 下载pywin32-x64版本 d.下载upx.exe (这个在pyinstall官网上面会有提示) e.使用pythone setup.py install 安装pyinstaller 一般我们是生成单文件的exe,方便可以在其他windows机器上可执行. 生成的命令是: python pyinstaller.py  -F  

py脚本打包exe可执行文件

python3以上版本打包exe需要扩展软件:cx_freeze 下载地址:http://cx-freeze.sourceforge.net/ 1)安装后在\Python32\Scripts\cxfreeze.bat和\Python32\Scripts\cxfreeze-quickstart.bat文件中更改python实际路径,如: C:\Python32\python.exe C:\Python32\Scripts\cxfreeze %*改为D:\Python32\python.exe D:

python中获取执行脚本路径方法

1.sys.path[0]:获取执行脚本目录绝对路径 #每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取) #!/usr/bin/python3 import os import sys print(sys.path) print(sys.path[0]) 执行结果: [[email protected] tmp]# ./py_test1/pytest24.py ['/tmp/py_test1', '/usr/local/lib/python3

一个好用的Python备份mysql的脚本

前几天打算用Python写一个mysql脚本,上Google看了下老外写的,写的挺好的,原地址在http://tecadmin.net/python-script-for-mysql-database-backup/#,所以就给 copy过来了 1 #!/usr/bin/python 2 ########################################################### 3 # 4 # This python script is used for mysql

Python:简单的文件备份脚本

文件备份脚本,实现了按照日期归类,时间建备份文件的功能,还能加入用户的备注信息. #!/usr/bin/python #Filename:backup_ver3.py import os import time #1.source file which to be backed up. source = ['/home/shibo/Code'] #2.target path which are backed up to. target_dir = '/home/shibo/backup/' #3

(三)运行appium示例py脚本

运行appium官方自带示例py程序,需要进行下面两大步骤 =======第一步,获得待测示例APP与示例脚本============================= 下载以下库代码(appium 示例代码)至本地  某目录下 https://github.com/appium/sample-code 下载下来后,打开目录结构,包含apps与samples,这2大模块 其中apps中包含:示例待测APP: example中包含的是: 示例测试脚本,支持各种语言: example中包含多种语言编

python常用运维脚本实例【转】

file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先open是内置函数,使用方式是open('file_name', mode, buffering),返回值也是一个file对象,同样,以写模式打开文件如果不存在也会被创建一个新的. f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,

mac pro python tab补全脚本

之前习惯在win或者linux 下写python小脚本,经常先把tab补全环境配置好,到了mac下发现之前在linux下的tab.py脚本都不适用,自己参考了mac python tab补全的官网略微修改了下,发现蛮好用的. mac pro 下配置的是全局的,不需要再终端输入:python  =>import tab.py  ,这样完全没必要. 具体的mac tab 补全脚本参考下面: $ cat ~/.pythonstartup #-*- coding:utf-8 -*- import os,

cocos2d-x 3.1 编译脚本android-build.py

写在前面: 前段时间下载了cocos2d-x 3.1,按照官网的教程,配置环境,编译打包,走了一遍,感觉不错,顺便发现其中用了很多python的脚本文件,比如今天要说的android-build.py.这个文件把编译,打包的功能全部整合到了一起.也就是传说中的一键打包.正好最近在看python,就顺手拿这个脚本学习一下. 小贴士: 在正式看这个脚本文件前,推荐先到cocos2d-x的官网按教程,配置环境,编译,打包,走一遍,先有个大概的了解.教程地址.http://www.cocos2d-x.o