微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python通过psutil库监管程序运行状态并进行重启

对于需要长时间运行的程序而言,由于各种异常状态而导致程序退出是非常常见的现象。为了减少程序退出导致的任务进度损失,我们可以通过外部的程序来对特定的任务进行监管。在程序结束后不需要人参与而马上重新启动。

psutil库提供了便利的函数用来获取才做系统的信息,比如cpu,内存,磁盘,网络等。psutil还可以用来进行进程管理,包括判断进程是否存在、获取进程列表、获取进程详细信息等。

首先我们需要安装psutil库

pip install psutil

在确定好需要监管的程序后,如果在for上使用psutil.pids(),则可以验证所有此进程是否使用python,与此同时判断运行的脚本是否存在于命令行列表内,同时符合条件时,可以确认程序正在运行,否则程序处于关闭状态

import psutil

def verification():
    for pid in psutil.pids():
        p = psutil.Process(pid)
        if p.name() == "python.exe" and len(p.cmdline()) > 1 and "headar.py" in p.cmdline()[1]:
            print("running")
            return 0
        else:
            print('wait')
            return 1

在确认程序状态后,我们可以根据上述函数的返回值来判断目前的程序状态,并根据需要重新启动程序

import os

cnt=0
while(cnt<500):
    cnt=cnt+verification()
    os.system('header.py')

这样就实现了程序长时间运行并自动监管的功能

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐