python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动-阿里云开发者社区

开发者社区> cloud_ruiy> 正文

python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动

简介: 用python监控您的window服务 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://world77.blog.51cto.com/414605/782935     最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务。
+关注继续查看

用python监控您的window服务

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://world77.blog.51cto.com/414605/782935

    最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务。。。

   脚本的工作原理是这样的:脚本读取配置文件,读取预先配置好的调用系统服务的路径和所要监控的服务在进程管理器中的进程名,之所以要用配置文件,是为了方便给需要的朋友,你只需要修改进程名和系统路径,源代码就不需要修改了。具体的看代码中的注释吧。。。下面的是配置文件 config.ini

复制代码
[MonitorProgramPath] 
ProgramPath: C:\Program Files\SSH Communications Security\SSH Secure Shell\SshClient.exe 
 
[MonitorProcessName] 
ProcessName: SshClient.exe 
复制代码

上面可以根据你的需求配置不同的路径和进程名,我是需要监控SshClient.exe 这个程序,那就配置好他的调用的系统路径和他在任务管理器里面的进程名。

下面来看看代码:

复制代码
#-*- encoding: utf-8 -*- 
import logging 
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 '' 
        print "Server is running..." 
        print '' 
    else: 
#如果进程名不在列表中,即监控的服务挂了,则在log文件下记录日志
#日志文件名是以年月日为文件名
 
        f=open('.\\log\\'+time.strftime("%Y%m%d", time.localtime())+'-exception.txt','a') 
        print 'Server is not running,Begining to Restart Server...' 
#打印服务状态
        f.write('\n'+'Server is not running,Begining to Restart Server...'+'\n') 
        f.write(time.strftime('%Y-%m-%d %H:%M:%S --%A--%c', time.localtime()) +'\n')
 #写入时间和服务状态到日志文件中
        os.startfile(ProgramPath) 
#调用服务重启
        f.write('Restart Server Success...'+'\n') 
        f.write(time.strftime('%Y-%m-%d %H:%M:%S --%A--%c', time.localtime())) 
        f.close() 
#关闭文件
        print 'Restart Server Success...' 
        print time.strftime('%Y-%m-%d %H:%M:%S --%A--%c', time.localtime()) 
    del ProList[:] 
#清空列表,否则列表会不停的添加进程名,会占用系统资源
     
if __name__=="__main__" : 
    while True: 
        main() 
        time.sleep(10) 
#每隔10秒调用脚本看下服务是否正常,如果不正常则重启服务,如果正常,则打印服务正常
复制代码

 呵呵,脚本还是很简单的,需要的朋友可以拿去玩玩,只要修改配置文件就可以了,不需要修改源代码,就能拿去跑跑,希望对大家的工作和学习有帮助,如果在使用中有问题,可以给我建议。。。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动
用python监控您的window服务 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://world77.blog.51cto.com/414605/782935     最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务。
1613 0
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 29 章 监控磁盘使用_29.1. 判断磁盘用量
29.1. 判断磁盘用量 每个表都有一个主要的堆磁盘文件,大多数数据都存储在其中。如果一个表有着可能会很宽(尺寸大)的列, 则另外还有一个TOAST文件与这个表相关联, 它用于存储因为太宽而不能存储在主表里面的值(参阅第 66.2 节)。
852 0
windows下bat批处理实现守护进程
本文转自网络,由于找不到原作者,因而无法知道出处。如果有幸让原作者看到,请联系我加上。先转载至此。 最近几天加班加疯掉了,天天晚上没法睡。开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时。
481 0
Python - 重新格式化段落
行,或者在打印诗时尝试增加每一行的缩进。在本章中,我们使用名为 textwrap3 的模块根据需要格式化段落。 当我们处理大量文本并将其呈现为可呈现的格式时,需要格式化段落。我们可能只想打印具有特定宽度的每一行,或者在打印诗时尝试增加每一行的缩进。
1193 0
linux strace-跟踪进程的系统调用或是信号产生情况,lstrace-跟踪己丑年调用库函数情况,进程跟踪调试命令
本工具可以用来做大多数排除,比如mount一个NFS,很慢,找不出原因,我们可以使用strace命令来跟中mount这个经常所有的调用过程。 strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。
1382 0
DT观察 | DT化进程持续展开:未来十年科技是什么样子?
约100年前的1910年,有感于曼哈顿的灯火通明,美国意象派诗人埃兹拉-庞德这样赞颂新奇的电力:“这就是文明诗一样的美景,因为我们已把星星摘了下来,终于遂了心愿”。无数的热议、想象、憧憬、幻想,同样发生于100年后的今天——DT时代! DT时代的模式升级与范式转移之产业篇 相
1981 0
【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。
原文:【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。
2246 0
成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程
融合流量网关与微服务网关的下一代网关—云原生网关来啦!优势满满!
493 0
【转】自动实时监控Windows2003服务器终端登录并发邮件和发短信通知
记得以前管理的一批windows服务器,一些开源程序做的web站点总会遭到入侵。然而就想找找看有没有办法可以知道服务器有没有被入侵。服务器在什么时候登陆过,如果登陆马上发邮件通知,感觉这种问题肯定有人处理过,于是网上搜罗了一下。
1112 0
+关注
cloud_ruiy
爱技术,爱开源,爱linux! 在技术成长道路上,能拉一把就拉一把,不藏着不掖着! 我由衷希望能和有理想敢吃苦的it人一起共同进步,共同成长! 虽然我现在没有大牛的能力,但是我有大牛的心态. 技术领域:shell编程,C编程,嵌入式开发.hadoop大数据,桉树,onenebul
1715
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载