windows系统下进程监控

前言

突然又个需求,要监控windows下本地的一个数据处理脚本.防止它挂掉.以及要自动重启.
但是没搞过呀…怎么办,硬着头皮上呀!
话说这也是奇葩需求…

教程

class Powershell:

    def __init__(self,lists, Email):
        self.lists = lists //需要监控的.exe名称
        self.email = Email //需要发送的提醒邮件

    def cmd(self,command):
        '''查询.exe程序'''
        args=[r"powershell",command]
        p = subprocess.Popen(args,shell=True,stdout=subprocess.PIPE) 
        out, err = p.communicate()
        exe_list = set()
        for line in out.splitlines():
            string = line.decode('gbk')
            exe_name = re.search(r'.*.exe',string)
            if not exe_name:continue
            exe_list.add(exe_name.group())
        print(exe_list)
        return exe_list

    def is_exe(self):
        data = self.cmd('tasklist')  //打印运行机器的所有.exe脚本.
        for name,value in self.lists.items():
            if name in data:
                print(f'{name} 运行正常...')
            else:
                cmd = r'start cmd /k '+value // star cmd /k xxxx.exe 重启脚本
                subprocess.Popen(cmd, shell=True)
                self.email.sen(f'{value} 已经报错,监控脚本已重启!!!')
                print(f'{value} 运行成功....')

结语

其实这个段代码,最重要的就是这两个命令:
1.taskilist
2.start cmd /k xxx.exe
3. subprocess.Popen比python os,sytme()好用,兼容性好.
流程就是通过tasklist获取所有进程名称,然后进行匹配.没有匹配则重启脚本.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值