对于需要长时间运行的程序而言,由于各种异常状态而导致程序退出是非常常见的现象。为了减少程序退出导致的任务进度损失,我们可以通过外部的程序来对特定的任务进行监管。在程序结束后不需要人参与而马上重新启动。
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 举报,一经查实,本站将立刻删除。