使用Python编写脚本运行监测器

1. 先说答案

对于像我这种没有耐心的同学,我这里先直接给出答案。这里先说明几个前提:

  1. 假设要运行的脚本名称为 handle.py,通常该脚本里面是一个循环运行的程序,对应着某个服务或者处理端,当然,也可以只是一个简单的程序,这个不重要,重要的是我们需要该脚本一直在运行,如果脚本因为某些不可抗拒的因素终止了,需要能够检测到并且自动重启该脚本;
  2. 脚本直接运行的命令为:python3 action.py,而且需要运行在Linux系统下,这个没什么说的;
  3. 我们的目的:通过一个监测程序监测 action.py 的脚本的运行情况,如果该脚本没有运行则启动该脚本;如果该脚本运行,则无操作。核心就是监测程序 monitor.py,代码如下:
# 脚本运行监测脚本,monitor.py
import subprocess
import datetime
import time

while True:
    '''
        通过查看当前进程来判断处理程序是否还活着
    '''
    res = subprocess.Popen('ps -ef | grep handle.py', stdout=subprocess.PIPE, shell=True)
    attn = res.stdout.readlines()
    '''
        attn的长度大于等于2
        如果为2,代表图像检测程序异常;
        如果大于等于2,代表一切正常;
    '''
    if len(attn) == 2:
        print('%s 处理程序异常,重启...' % datetime.datetime.now())
        subprocess.Popen('python3 handle.py', stdout=open('./handle.log', 'a+'), shell=True)
        with open('./monitor.log', 'a+') as f:
            f.write('%s 处理程序异常,重启...\n' % datetime.datetime.now())
    else:
        print('%s handle.py 正常...' % datetime.datetime.now())

    # 休眠五秒钟,然后再次检测脚本运行
    time.sleep
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值