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脚本处理空格的方法
Aug 08 Python
浅谈对yield的初步理解
May 29 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
Python绘制二维曲线的日常应用详解
Dec 04 Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
Python如何执行系统命令
Sep 23 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 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
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
详谈python中冒号与逗号的区别
2018/04/18 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
Python enumerate内置库用法解析
2020/02/24 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
满月酒答谢词
2014/01/14 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
小学生安全保证书
2015/05/09 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python