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 相关文章推荐
用pickle存储Python的原生对象方法
Apr 28 Python
Django 导出 Excel 代码的实例详解
Aug 11 Python
Python 私有函数的实例详解
Sep 11 Python
python实现控制台打印的方法
Jan 12 Python
python基础梳理(一)(推荐)
Apr 06 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
PyCharm下载和安装详细步骤
Dec 17 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
关于tf.nn.dynamic_rnn返回值详解
Jan 20 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 Python
详解Python中的for循环
Apr 30 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最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
Javascript - HTML的request类
2006/07/15 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
python生成lmdb格式的文件实例
2018/11/08 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
清洁工个人工作总结
2015/03/05 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
开场白怎么写
2015/06/01 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS