gpt4 book ai didi

python3实现windows下同名进程监控

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python3实现windows下同名进程监控由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

python3实现windows下同名进程监控,供大家参考,具体内容如下 。

公司老版的SVN服务器的svn服务经常意外关闭,需要写个简单的监控脚本监控一下; 。

首先多个SVN服务使用不同的端口,使用wmic命令查看所有SVN进程占用的端口以此来判断目标服务是否存活,wimc命令如下:

wmic process where caption=”svn.exe” get commandline /value 。

然后用正则取出标准输出中的端口,用来比对; 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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来实现; 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

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

原文链接:https://blog.csdn.net/qq_22766903/article/details/79772092 。

最后此篇关于python3实现windows下同名进程监控的文章就讲到这里了,如果你想了解更多关于python3实现windows下同名进程监控的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com