用Python监控进程的状态-psutil

背景

在平时的工作中,经常会有某些进程突然 CPU 飙升,导致系统卡顿。那如何才能监控某个进程的 CPU 利用率呢?我们今天就一起用 Python 来实现下。

环境准备

依赖库

psutilPython 的一个很流行的库,用来获取系统资源信息的。它支持 windowslinux,可以获取 CPU,内存,网络,硬盘等信息。

安装

pip install psutil

代码准备

# 导入依赖库
import psutil,time
import re,string

# 打印系统全部进程的PID列表
print(psutil.pids())

# 根据进程名获取进程PID
def get_pid(name):
    process_list = list(psutil.process_iter())
    print(process_list)
    regex = "pid=(d+),sname='" + name + "'"
    print(regex)
    pid = 0
    for line in process_list:
        process_info = str(line)
        ini_regex = re.compile(regex)
        result = ini_regex.search(process_info)
        if result != None:
            pid = result.group(1)
            print(pid)
            print(result.group())
            return int(pid)

# 根据进程PID获取进程对象
def get_process_obj_by_id(pid):
    try:
        p = psutil.Process(pid)
    except Exception as e:
        print(e)
    return p

# 获取Taskmgr的PID
pid = get_pid('Taskmgr.exe')

# 根据Taskmgr的PID获取Taskmgr进程对象
process_obj=get_process_obj_by_id(pid)
num=0
while True:
    num+=1
    # 获取Taskmgr的CPU实时利用率,interval为间隔时间
    per = process_obj.cpu_percent(interval=1)
    print(num ,per)

执行效果

以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

版权声明:除特殊说明,博客文章均为phyger原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。来自:https://u1s1.vip/archives/251
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇