python监测程序进程

1年前 (2023-09-06)阅读82回复0
李昊宇
李昊宇
  • 注册排名10010
  • 经验值5
  • 级别
  • 主题1
  • 回复0
楼主

Python是一种广泛使用的编程语言,它有丰富的库和工具箱,可以让程序员更加容易地控制和管理程序进程。Python提供了一种简单而有效的方式来监测程序进程,帮助用户及时发现程序异常,提高程序的可靠性和稳定性。下面我们将讨论如何使用Python来监测程序进程。

在Python中,可以使用psutil模块来监测程序进程。这个模块不仅可以监测本地进程,还可以监测远程进程。使用psutil模块可以轻松获取程序进程信息,如进程ID、进程名、进程所占用的CPU、内存等资源,还可以获取进程的父进程、子进程等信息。

import psutil
# 获取本地进程的PID
pid = psutil.Process().pid
# 获取进程名
pname = psutil.Process().name()
# 获取进程占用的CPU百分比
cpu_percent = psutil.Process(pid).cpu_percent(interval=1)
# 获取进程占用的内存大小
mem_info = psutil.Process(pid).memory_info()
mem_rss = mem_info.rss / 1024 / 1024
mem_vms = mem_info.vms / 1024 / 1024
print(f"进程ID: {pid}")
print(f"进程名: {pname}")
print(f"CPU占用率: {cpu_percent}")
print(f"内存占用: {mem_rss:.2f}MB(real), {mem_vms:.2f}MB(virtual)")

使用以上代码可以简单地获取一个本地进程的PID、进程名、CPU占用率以及内存占用。其中,cpu_percentmem_info需要使用psutil.Process(pid)获取指定PID的进程。

如果需要监测多个程序进程,可以使用psutil.process_iter来获取所有进程的信息,并过滤出需要监测的进程。例如,需要监测Python进程的CPU占用,可以使用以下代码:

import psutil
for p in psutil.process_iter():
try:
if p.name() == 'python.exe':
cpu_percent = p.cpu_percent(interval=1)
print(f"PID: {p.pid}, CPU占用率: {cpu_percent}")
except psutil.NoSuchProcess:
pass

以上代码可以获取所有Python进程的PID和CPU占用率,其中过滤出Python进程的方法是使用p.name() == 'python.exe',可以根据需要更改进程名字的过滤条件。同时,如果进程不存在,psutil.NoSuchProcess异常会被抛出,可以使用try-except语句来捕获异常。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/1429.html

0
回帖

python监测程序进程 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息