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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“python3实现windows下同名进程监控”评论...
更新动态
2025年11月07日
2025年11月07日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]