Python获取指定服务的cpu占用率

渔樵者 2015-01-24 02:30:21
以下是我的两个文件,希望大神或者喜欢尝试的兄弟看看。
test_no1.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import ctypes;
import psutil
import test_no2
__metaclass__ = type;

class PROCESSENTRY32(ctypes.Structure):
_fields_ = [
("dwSize",ctypes.c_ulong),
("cntUsage",ctypes.c_ulong),
("th32ProcessID",ctypes.c_ulong),
("th32DefaultHeapID",ctypes.c_void_p),
("th32ModuleID",ctypes.c_ulong),
("cntThreads",ctypes.c_ulong),
("th32ParentProcessID",ctypes.c_ulong),
("pcPriClassBase",ctypes.c_long),
("dwFlags",ctypes.c_ulong),
("szExeFile",ctypes.c_char*260)
]

kernel32 = ctypes.windll.LoadLibrary("kernel32.dll");
pHandle = kernel32.CreateToolhelp32Snapshot(0x2,0x0);

import sys;

if pHandle==-1:
sys.exit();

proc = PROCESSENTRY32();
proc.dwSize = ctypes.sizeof(proc);

while kernel32.Process32Next(pHandle,ctypes.byref(proc)):
ss = ctypes.string_at(proc.szExeFile)
ss=str(ss)
ss=ss.strip("b'")
if ss == "Tra_ser.exe":#获取此服务的cpu占用率
proc_PID = proc.th32ProcessID
print(proc.th32ProcessID)
p = psutil.Process(proc.th32ProcessID)
p.get_cpu_percent(interval=0)
print("####")
print(p.get_cpu_percent(interval=0))#第一次调用
print("####")

kernel32.CloseHandle(pHandle);

#TODO:test_no2的函数接口
test_no2.test(proc_PID)

test_no2.py
import psutil

def test(a):
p1 = psutil.Process(a)
cpu_per = p1.get_cpu_percent(interval=0)#再次调用获取cpu占用率
print("我到达被启动函数,下面打印进程cpu使用率")
print(cpu_per)
...全文
529 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
渔樵者 2015-01-24
  • 打赏
  • 举报
回复
进来看的兄弟,帮帮忙看看,我这里没有运行出来

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧