python3实现windows下同名进程监控


Posted in Python onJune 21, 2018

python3实现windows下同名进程监控,供大家参考,具体内容如下

公司老版的SVN服务器的svn服务经常意外关闭,需要写个简单的监控脚本监控一下;

首先多个SVN服务使用不同的端口,使用wmic命令查看所有SVN进程占用的端口以此来判断目标服务是否存活,wimc命令如下:

wmic process where caption=”svn.exe” get commandline /value

然后用正则取出标准输出中的端口,用来比对;

def get_alive_port(program):
 """
  获取目标程序占用的端口
  :param program {string} 目标进程
  :return portlist {list} 目标进程占用的端口列表
 """
 cmd = 'wmic process where caption="%s" get commandline /value' % program
 ps = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
 portlist = []
 while True:
  out = ps.stdout.readline()
  if out:
   out = out.decode("gb2312")
   templist = re.findall("[0-9]{4,5}", out)
   portlist.extend(templist)
  else:
   break
 return portlist

使用监控后发现SVN服务不意外关闭了,但是SVN程序被访问久了占用过大内存需要监控一下借助psutil来实现;

def howmuch_memory(program):
 """
  监控目标进程内存是否超过阀值,若超过则关闭
 """
 cmd = 'wmic process where caption="%s" get processid /value' % program
 ps = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
 pids = []
 while True:
  out = ps.stdout.readline()
  if out:
   out = out.decode("gb2312")
   templist = re.findall("[0-9]{3,6}", out)
   pids.extend(templist)
  else:
   break
 for pid in pids:
  try:
   p = psutil.Process(int(pid))
   p_memory = p.memory_info()
   if int(p_memory.rss / (1024 * 1024)) >= 200:
    p.kill()
  except Exception as e:
   print("出现如下错误:{0}".format(e))
   continue

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现rest请求api示例
Apr 22 Python
Python中利用sqrt()方法进行平方根计算的教程
May 15 Python
python贪吃蛇游戏代码
Apr 18 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
pycharm运行scrapy过程图解
Nov 22 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 Python
Python和Bash结合在一起的方法
Nov 13 Python
python 制作磁力搜索工具
Mar 04 Python
Python基础学习之奇异的GUI对话框
May 27 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
Python使用永中文档转换服务
May 06 Python
python检测主机的连通性并记录到文件的实例
Jun 21 #Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 #Python
python实现自动发送报警监控邮件
Jun 21 #Python
Python中list查询及所需时间计算操作示例
Jun 21 #Python
python监控文件并且发送告警邮件
Jun 21 #Python
python3实现磁盘空间监控
Jun 21 #Python
Python实现的远程登录windows系统功能示例
Jun 21 #Python
You might like
PHP+DBM的同学录程序(1)
2006/10/09 PHP
MySQL授权问题总结
2007/05/06 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
Using the TextRange Object
2006/10/14 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
python实现简单井字棋游戏
2020/03/04 Python
Python 里最强的地图绘制神器
2021/03/01 Python
python中random模块详解
2021/03/01 Python
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
运动会主持词大全
2015/07/02 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书