python3实现windows下同名进程监控

 更新时间:2018年06月21日 10:20:39   作者:qq_22766903  
这篇文章主要为大家详细介绍了python3实现windows下同名进程监控,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • pycharm 批量修改变量名称的方法

    pycharm 批量修改变量名称的方法

    这篇文章主要介绍了pycharm 批量修改变量名称的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Pytorch使用技巧之Dataloader中的collate_fn参数详析

    Pytorch使用技巧之Dataloader中的collate_fn参数详析

    collate_fn 参数的目的主要是为了随心所欲的转变数据的类型,这个数据是用DataLoader加载的,比如img,target,下面这篇文章主要给大家介绍了关于Pytorch使用技巧之Dataloader中的collate_fn参数的相关资料,需要的朋友可以参考下
    2022-03-03
  • Python使用PIL.image保存图片

    Python使用PIL.image保存图片

    PIL库支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作,下面这篇文章主要给大家介绍了关于Python使用PIL.image保存图片的相关资料,需要的朋友可以参考下
    2022-12-12
  • python随机模块random使用方法详解

    python随机模块random使用方法详解

    这篇文章主要介绍了python随机模块random使用方法详解,需要的朋友可以参考下
    2020-02-02
  • 利用Python破解验证码实例详解

    利用Python破解验证码实例详解

    这篇文章主要给大家介绍的是如何通过一个简单的例子来实现破解验证码。从本文中我们可以学习到 Python 基本知识,PIL 模块的使用,破解验证码的原理。文中通过实例一步步介绍的很详细,相信对大家理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2016-12-12
  • 解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题

    解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题

    今天小编就为大家分享一篇解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python中实现根据坐标点位置求方位角

    python中实现根据坐标点位置求方位角

    这篇文章主要介绍了python中实现根据坐标点位置求方位角方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 初步解析Python中的yield函数的用法

    初步解析Python中的yield函数的用法

    这篇文章主要介绍了Python中的yield函数,yield函数是生成器中的一个常用函数,本文来自于IBM官方网站的开发者文档的翻译,需要的朋友可以参考下
    2015-04-04
  • Python中Numpy模块使用详解

    Python中Numpy模块使用详解

    这篇文章主要介绍了Python中Numpy模块使用详解,NumPy是Python 的一个扩展程序库,支持大量的维度数组与矩阵运算。更多相关内容需要的朋友可以参考一下
    2022-07-07
  • python内置函数之eval函数详解

    python内置函数之eval函数详解

    这篇文章主要为大家介绍了python内置函数之eval函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01

最新评论