首页 > 编程语言 > 详细

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

时间:2021-02-28 00:04:13      阅读:48      评论:0      收藏:0      [点我收藏+]

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

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)

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

 

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

原文:https://www.cnblogs.com/btc1996/p/14456264.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!