1.cofig.ini文件
[MonitorProgramPath]
ProgramPath:C:\Program Files\Google\Chrome\Application\chrome.exe
[MonitorProcessName]
ProcessName:chrome.exe
2.cofigDemo.py
# -*- encoding: utf-8 -*-
import wmi
import os
import time
from configparser import ConfigParser
CONFIGFILE = 'config.ini'
config = ConfigParser()
config.read(CONFIGFILE)
ProgramPath = config.get('MonitorProgramPath', 'ProgramPath')
ProcessName = config.get('MonitorProcessName', 'ProcessName')
# 读取配置文件中的进程名和系统路径,这2个参数都可以在配置文件中修改
ProList = []
# 定义一个列表
c = wmi.WMI()
def main():
for process in c.Win32_Process():
ProList.append(str(process.Name))
# 把所有任务管理器中的进程名添加到列表
if ProcessName in ProList:
# 判断进程名是否在列表中,如果是True,则所监控的服务正在 运行状态,
print("服务运行中")
else:
print("服务正在启动")
os.startfile(ProgramPath)
# 调用服务重启
del ProList[:]
# 清空列表,否则列表会不停的添加进程名,会占用系统资源
if __name__ == "__main__":
while True:
main()
time.sleep(10)
# 每隔10秒调用脚本看下服务是否正常,如果不正常则重启服务,如果正常,则打印服务正常