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实现子类调用父类的方法
Nov 10 Python
python处理按钮消息的实例详解
Jul 11 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
Python设计模式之外观模式实例详解
Jan 17 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
python3安装OCR识别库tesserocr过程图解
Apr 02 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
python判断all函数输出结果是否为true的方法
Dec 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中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
POST提交数据常见的四种方式
2022/01/18 HTML / CSS