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写的windows服务不能启动的问题
Apr 15 Python
Python递归遍历列表及输出的实现方法
May 19 Python
Python打印斐波拉契数列实例
Jul 07 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 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获取一个字符串中间一部分字符的方法
2014/08/19 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
node.js中的path.join方法使用说明
2014/12/08 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
Python将xml和xsl转换为html的方法
2015/03/10 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python Cookie 读取和保存方法
2018/12/28 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
python 实现线程之间的通信示例
2020/02/14 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
大学毕业生个人自荐信范文
2014/01/08 职场文书
工作态度检讨书范文
2015/05/06 职场文书
法定代表人资格证明书
2015/06/18 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
银行工作心得体会范文
2016/01/23 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
汽车销售合同文本
2019/08/08 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python