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入门教程
Apr 03 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Django Highcharts制作图表
Aug 27 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
深入理解Python中的super()方法
Nov 20 Python
python如何统计序列中元素
Jul 31 Python
python最长回文串算法
Jun 04 Python
Python3 修改默认环境的方法
Feb 16 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
基于Python实现射击小游戏的制作
Apr 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 setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
JS实现前端缓存的方法
2017/09/21 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python Requests安装与简单运用
2016/04/07 Python
pandas重新生成索引的方法
2018/11/06 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
化学教师教学反思
2014/01/17 职场文书
活动邀请函范文
2014/01/19 职场文书
善意的谎言事例
2014/02/15 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
小组合作学习反思
2014/02/18 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
优秀志愿者感言
2015/08/01 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server