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语言技巧之三元运算符使用介绍
Mar 04 Python
python中import学习备忘笔记
Jan 24 Python
python 编程之twisted详解及简单实例
Jan 28 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python 操作hive pyhs2方式
Dec 21 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
利用python绘制数据曲线图的实现
Apr 09 Python
python的help函数如何使用
Jun 11 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
神经网络训练采用gpu设置的方式
Mar 03 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 shell命令合并图片的代码
2011/06/23 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
JS动态调用方法名示例介绍
2013/12/18 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
浅谈javascript的调试
2015/01/28 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
利用Python求阴影部分的面积实例代码
2018/12/05 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python DataFrame 取差集实例
2019/01/30 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
银行优秀员工事迹
2014/02/06 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
表扬信格式模板
2015/05/05 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android