Python中的psutil:一个用于获得处理器和系统相关信息的模块

http://www.crifan.com/try_python_psutil/


无意间得知了psutil模块,去网上找了下,找到:

http://pypi.python.org/pypi/psutil

目前最新版是0.6.1

打算去折腾折腾。

不过先看看介绍。


psutil简介

psutil是什么

psutil是个Python模块。

psutil能干啥

psutil能干的事是:提供了个接口,可以用来获取信息,包括:

  • 当前运行的进程
  • 系统(资源使用)信息
    • CPU
    • 内存
    • 磁盘
    • 网络
    • 用户

psutil实现了很多功能,包括了如下工具所具有的:

  • ps
  • top
  • df
  • kill
  • free
  • lsof
  • free
  • netstat
  • ifconfig
  • nice
  • ionice
  • iostat
  • iotop
  • uptime
  • pidof
  • tty
  • who
  • taskset
  • pmap

 

由此可见,也就可以利用psutil去实现kill的功能,而把某个进程干掉。

下载psutil

找到下载的地方:

http://code.google.com/p/psutil/downloads/list

下载和我当前系统:

win7 64位

Python 2.7.2

对应的:

psutil-0.6.1.win-amd64-py2.7.exe

得到

psutil-0.6.1.win-amd64-py2.7.exe

安装psutil

双击psutil-0.6.1.win-amd64-py2.7.exe去安装:
install psutil ui

此处可以正确的检测出Python的安装路径:

can detect python27 install dir

准备安装:

ready to install

很快就安装完毕了:

install complete

 

使用psutil

试着去写写代码。

此处,尝试去找到,当前进程中正在运行的有道词典的信息,并打印出来。

进程名是:YodaoDict.exe

然后再干掉此进程。

然后参考:

http://pypi.python.org/pypi/psutil

中的“Process management”,去写代码。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Function:
【记录】折腾Python中的psutil:一个用于获得处理器和系统相关信息的模块
 
 
Author:     Crifan Li
Version:    2013-01-02
Contact:    admin at crifan dot com
"""
 
import psutil;
 
def tryPsutil():
     pidList = psutil.get_pid_list();
     print "pidList=" ,pidList;
     
     #processToTest = "QQ.exe";
     processToTest = "YodaoDict.exe" ;
     
     for eachPid in pidList:
         try :
             eachProcess = psutil.Process(eachPid);
             #print "eachProcess=",eachProcess;
             processName = eachProcess.name;
             if (processName.lower() = = processToTest.lower()):
                 print "Found process" ;
                 print "processName=" ,processName;
                 processExe = eachProcess.exe;
                 print "processExe=" ,processExe;
                 processGetcwd = eachProcess.getcwd();
                 print "processGetcwd=" ,processGetcwd;
                 processCmdline = eachProcess.cmdline;
                 print "processCmdline=" ,processCmdline;
                 processStatus = eachProcess.status;
                 print "processStatus=" ,processStatus;
                 processUsername = eachProcess.username;
                 print "processUsername=" ,processUsername;
                 processCreateTime = eachProcess.create_time;
                 print "processCreateTime=" ,processCreateTime;
                 print "Now will terminate this process !" ;
                 eachProcess.terminate();
                 eachProcess.wait(timeout = 3 );
                 print "psutil.test()=" ,psutil.test();
                 
         except psutil.NoSuchProcess,pid:
             print "no process found with pid=%s" % (pid);
 
if __name__ = = "__main__" :
     tryPsutil();

完整的输出效果是:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
E:\Dev_Root\python\try_psutil>try_psutil.py
pidList= [0, 4, 412, 496, 564, 576, 620, 628, 636, 700, 784, 860, 928, 992, 172, 452, 1064, 1124, 1208, 1412, 1448, 1504
, 1644, 1696, 1760, 1784, 1884, 1960, 2024, 1136, 1340, 2156, 2264, 2296, 2316, 2444, 2584, 2592, 2712, 2756, 2952, 3004
, 2480, 2988, 2108, 3268, 3808, 4008, 2512, 3580, 4284, 5040, 2092, 4120, 5060, 1524, 4436, 5488, 5520, 5888, 5696, 1912
, 1660, 8432, 1060, 976, 7416, 7656, 1736, 5412, 9628, 9712, 10072, 15508, 19368, 21096, 17132, 24396, 26680, 34056, 290
20, 31976, 24472, 32380, 32544, 25272, 35712, 23604, 32516, 36484, 35852, 37540, 37236, 37348, 38820, 37256, 38304, 3807
2, 36392, 22808]
Found process
processName= YodaoDict.exe
processExe= D:\Program Files (x86)\Youdao\Dict4\YodaoDict.exe
processGetcwd= C:\Windows
processCmdline= [ 'D:\\Program Files (x86)\\Youdao\\Dict4\\YodaoDict.exe' , 'start' , '-hide' ]
processStatus= running
processUsername= NYBDHB7EB3XEHP6\Administrator
processCreateTime= 1357032858.0
Now will terminate this process !
psutil. test ()=USER         PID %CPU %MEM     VSZ     RSS TTY           START    TIME  COMMAND
SYSTEM         0  0.0    ?       ?      24 ?             Jan01   49:51  System Idle Process
SYSTEM         4  0.0    ?     132     380 ?             Jan01   43:10  System
              172  0.0  0.2   11172   15164 ?             Jan01   00:18  svchost.exe
              412  0.0    ?     560     500 ?             Jan01   00:00  smss.exe
              452  0.0  0.8   47740   51376 ?             Jan01   04:49  svchost.exe
              496  0.0  0.1    2664    3196 ?             Jan01   00:04  csrss.exe
              564  0.0    ?    1724    1404 ?             Jan01   00:00  wininit.exe
              576  0.0  0.6    4012   36836 ?             Jan01   05:42  csrss.exe
              620  0.0  0.1    4964    6744 ?             Jan01   00:05  services.exe
              628  0.0  0.2    7116    9640 ?             Jan01   00:45  lsass.exe
              636  0.0  0.1    3460    3444 ?             Jan01   00:11  lsm.exe
              700  0.0  0.1    3396    4200 ?             Jan01   00:00  winlogon.exe
              784  0.0  0.1    5696    7244 ?             Jan01   02:45  svchost.exe
              860  0.0  0.1    6228    7652 ?             Jan01   00:07  svchost.exe
              928  0.0    ?    1728    2132 ?             Jan01   00:00  atiesrxx.exe
Administra   976  0.0  4.0  178760  247656 ?             Jan01   37:11  360se.exe
              992  0.0  0.2   21888   14048 ?             Jan01   00:58  svchost.exe
Administra  1060  0.0  0.6   98736   33944 ?             Jan01   00:49  QQExternal.exe
             1064  0.0  0.2    7556   10620 ?             Jan01   03:03  svchost.exe
             1124  0.0  0.1    2768    4524 ?             Jan01   00:00  atieclxx.exe
             1136  0.0    ?    1612    1484 ?             Jan01   00:00  IMEDICTUPDATE.EXE
             1208  0.0  0.4   27944   26804 ?             Jan01   06:29  svchost.exe
             1340  0.0  0.2  144172   12580 ?             Jan01   19:20  sqlservr.exe
             1412  0.0  0.1    6792    8664 ?             Jan01   00:03  spoolsv.exe
             1448  0.0  0.3    9676   16436 ?             Jan01   00:37  svchost.exe
             1504  0.0  0.2   10884   12756 ?             Jan01   00:33  svchost.exe
Administra  1524  0.0  0.2   11016   10572 ?             Jan01   00:13  QQProtect.exe
Administra  1644  0.0  0.1    2628    3988 ?             Jan01   00:00  taskeng.exe
Administra  1660  0.0  0.1    4284    3752 ?             Jan01   00:00  rundll32.exe
Administra  1696  0.0  0.9   41660   52284 ?             Jan01   19:30  dwm.exe
Administra  1736  0.0  0.6   45340   38496 ?             Jan01   00:09  360se.exe
Administra  1760  0.0    ?   10964    1188 ?             Jan01   03:44  GooglePinyinDaemon.exe
Administra  1784  0.0  1.6  101440   99904 ?             Jan01   04:51  explorer.exe
             1884  0.0  0.1    6192    8124 ?             Jan01   19:21  AlipaySecSvc.exe
             1912  0.0  0.4   47028   21968 ?             Jan01   05:25  svchost.exe
             1960  0.0  0.2   16520   14060 ?             Jan01   00:21  DTLService.exe
             2024  0.0  0.2   10096   13324 ?             Jan01   00:02  IcbcDaemon_64.exe
Administra  2092  0.0    ?    1212     692 ?             Jan01   00:00  GooglePinyinService.exe
Administra  2108  0.0  0.1    4780    6636 ?             Jan01   00:27  WPService.exe
             2156  0.0  0.1    3940    3652 ?             Jan01   00:00  TenpayServer.exe
             2264  0.0    ?    2196    2596 ?             Jan01   00:00  sqlwriter.exe
Administra  2296  0.0  0.1    8600    5028 ?             Jan01   00:00  RAVCpl64.exe
             2316  0.0    ?    2204    3052 ?             Jan01   00:00  svchost.exe
             2444  0.0  0.1    4252    4900 ?             Jan01   00:01  WLIDSVC.EXE
Administra  2480  0.0  0.2   10356   12348 ?             Jan01   00:15  wandoujia_helper.exe
             2512  0.0  0.3   31548   17804 ?             Jan01   00:47  SearchIndexer.exe
Administra  2584  0.0    ?    1956    2384 ?             Jan01   00:01  ctfmon.exe
Administra  2592  0.0  0.7   33232   39988 ?             Jan01   02:48  picpick.exe
Administra  2712  0.0  0.2    8032    9828 ?             Jan01   00:33  TSVNCache.exe
             2756  0.0    ?    1504    1352 ?             Jan01   00:00  WLIDSVCM.EXE
Administra  2988  0.0    ?    1216    1140 ?             Jan01   00:00  jusched.exe
Administra  3004  0.0  0.1    5252    8444 ?             Jan01   02:52  RenRenService.exe
Administra  3268  0.0  0.1   40984    4996 ?             Jan01   00:02  MOM.exe
             3580  0.0  0.2    6280    9724 ?             Jan01   00:06  OSPPSVC.EXE
Administra  3808  0.0  0.1  112036    6108 ?             Jan01   00:44  CCC.exe
Administra  4008  0.0  0.1    4072    4840 ?             Jan01   00:02  WordBook.exe
Administra  4120  0.0    ?    2616    2616 ?             Jan01   00:06  wandoujia_daemon.exe
             4284  0.0  0.1    2528    3476 ?             Jan01   00:16  svchost.exe
Administra  4436  0.0  3.1  272020  190740 ?             Jan01   23:57  QQ.exe
Administra  5040  0.0  0.2    7404    9336 ?             Jan01   17:43  Alipaybsm.exe
Administra  5060  0.0    ?    2104    2452 ?             Jan01   00:00  conhost.exe
Administra  5412  0.0  1.4   88396   83880 ?             Jan01   00:34  360se.exe
Administra  5488  0.0    ?    1492    1620 ?             Jan01   00:00  TXPlatform.exe
Administra  5520  0.0  0.2   11376   12816 ?             Jan01   00:01  BFVDesktop.exe
             5696  0.0    ?    1392    1280 ?             Jan01   00:00  svchost.exe
             5888  0.0  0.1   27820    7984 ?             Jan01   00:00  PresentationFontCache.exe
Administra  7416  0.0  0.5   38564   28756 ?             Jan01   00:02  360se.exe
Administra  7656  0.0    ?   15656    1936 ?             Jan01   00:23  360seNotify.exe
Administra  8432  0.0  2.8  174100  170100 ?             Jan01   05:17  xntalk.exe
Administra  9628  0.0  0.9   58392   56696 ?             Jan01   44:49  360se.exe
Administra  9712  0.0  0.6   57184   38136 ?             Jan01   00:14  360se.exe
Administra 10072  0.0  0.7   50592   45444 ?             Jan01   00:44  360se.exe
Administra 15508  0.0  1.4   83116   83504 ?             Jan01   00:53  360se.exe
Administra 17132  0.0  0.7   55712   42712 ?             Jan01   00:19  explorer.exe
            19368  0.0    ?    3300    2736 ?             Jan01   00:02  SearchProtocolHost.exe
Administra 21096  0.0  0.5   34800   32656 ?             Jan01   00:12  explorer.exe
Administra 22808  0.0  0.2    7456   11080 ?             17:52   00:06  python.exe
            23604  0.0  0.3   20416   19920 ?             16:46   00:16  audiodg.exe
Administra 24396  0.0  0.1    5452    4640 ?             Jan01   00:02  SogouCloud.exe
Administra 24472  0.0  0.6   26668   37268 ?             02:28   03:34  ThunderPlatform.exe
Administra 25272  0.0  0.5   23196   32928 ?             15:00   05:00  AlipaySafeTran.exe
SYSTEM     26680  0.0    ?    3308    2980 ?             00:17   00:00  SearchFilterHost.exe
Administra 29020  0.0  0.7   39320   45516 ?             02:16   00:07  360se.exe
Administra 31976  0.0  1.6   81512   98160 ?             02:28   09:27  Thunder.exe
Administra 32380  0.0  1.4   75472   85876 ?             14:39   02:10  360se.exe
Administra 32516  0.0  0.5   28212   31000 ?             16:47   00:00  360se.exe
Administra 32544  0.0  0.5   31912   33572 ?             14:55   00:03  360se.exe
Administra 34056  0.0  0.6   60452   37664 ?             02:08   07:40  QQExternal.exe
Administra 35712  0.0  0.8   12776   52096 ?             16:25   00:05  rrbrowser.exe
Administra 35852  0.0  2.7  115688  164640 ?             16:50   01:19  WindowsLiveWriter.exe
Administra 36392  0.0  0.1    2284    6900 ?             17:29   00:01  conhost.exe
Administra 36484  0.0  0.4   20220   23300 ?             16:47   00:05  360se.exe
Administra 37236  0.0  0.6   29856   33916 ?             16:59   00:03  360se.exe
Administra 37256  0.0  0.5   17056   29612 ?             17:18   01:05  notepad++.exe
Administra 37336  0.0  0.3   11344   18764 ?             17:52   00:01  PinyinUp.exe
Administra 37348  0.0  0.5   30344   33576 ?             16:59   00:02  360se.exe
Administra 37540  0.0  0.1    4972    8968 ?             16:54   00:00  rundll32.exe
Administra 38072  0.0  0.1    2920    6796 ?             17:29   00:00  cmd.exe
Administra 38304  0.0  0.2    4008   13268 ?             17:23   01:21  taskmgr.exe
Administra 38820  0.0  0.7   24468   41916 ?             17:16   00:02  explorer.exe
None
 
E:\Dev_Root\python\try_psutil>
E:\Dev_Root\python\try_psutil>

另外的,关于相关的其函数,比如kill,都可以参考官网的解释:

http://code.google.com/p/psutil/wiki/Documentation

比如:

  • terminate()

    Terminate the process with SIGTERM signal. On Windows this is an alias forkill().

  • kill()

    Kill the current process by using SIGKILL signal.

 

总结

psutil,效果还是很不错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值