- 积分
- 16841
在线时间 小时
最后登录1970-1-1
|

楼主 |
发表于 2017-12-23 21:01:22
|
显示全部楼层
Example usages* x* h9 M+ ]( R& f9 l: C& K1 B# F
* b0 Z7 z( e4 i s, | K' SCPU4 f7 ^. D8 \8 v: a$ G. I q
>>> import psutil
& ^6 y R1 L( y! V>>> psutil.cpu_times()) b+ i* D1 J L. h" B: h0 q- Q
scputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540, iowait=629.59, irq=0.0, softirq=19.42, steal=0.0, guest=0, nice=0.0)
. h# k. d }6 p7 j>>>
$ C) D* C* V+ |# p" @1 a>>> for x in range(3):) D/ V* F# Q* c( A
... psutil.cpu_percent(interval=1)
8 N$ }' J) x5 k...
, e6 @' z4 t3 `* c/ b) y4.0
+ p) l) q" |6 I1 q5.9
# n, _- W0 G4 h4 n& e3.8
8 j& t. a. ?5 d, q8 f>>>
* D. o) h! j9 t w) g i! i( |6 q>>> for x in range(3):
5 b2 V4 |+ I5 `! ?: H9 A2 n$ ?... psutil.cpu_percent(interval=1, percpu=True)7 z( s' J5 P* P: I" k
...9 o2 j) y- r' w7 ^1 L. Q) b7 `
[4.0, 6.9, 3.7, 9.2]' s! U$ V3 O& Y$ U: Y. h
[7.0, 8.5, 2.4, 2.1]4 h7 f9 X% T) e% K
[1.2, 9.0, 9.9, 7.2]
5 h8 b) h5 K' J: H7 m>>>. T3 ^2 Y/ a- y/ f; m
>>> for x in range(3):
! c$ u/ `% ?# ]- m( d6 e/ j4 |... psutil.cpu_times_percent(interval=1, percpu=False)" s8 ~9 E8 p. C
...5 P- P2 b4 F& s' n5 @
scputimes(user=1.5, nice=0.0, system=0.5, idle=96.5, iowait=1.5, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0). m* p# m+ Q8 r ^
scputimes(user=1.0, nice=0.0, system=0.0, idle=99.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)2 E5 z. O' n+ Z+ E+ w1 ^# x9 h+ U
scputimes(user=2.0, nice=0.0, system=0.0, idle=98.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
! d( B# G0 O2 p; p>>>/ `! \8 z# O6 l3 W: }4 F
>>> psutil.cpu_count(); |5 a0 j6 U R5 r9 _, y! g' {
4. I1 P) N7 P. H4 o3 C: ~2 D ?1 G! A
>>> psutil.cpu_count(logical=False); \% T9 w. O/ r0 ]7 {
2) I) }5 L. v1 i& P8 v: d
>>>; [( L4 {6 d4 Q
>>> psutil.cpu_stats()8 O! { m. q. ]9 P5 {% @
scpustats(ctx_switches=20455687, interrupts=6598984, soft_interrupts=2134212, syscalls=0)
$ T+ g ]8 t# y& ~>>>3 C# j. \# J1 C) F
>>> psutil.cpu_freq(): y" G& ]. ^2 B' w. R1 i T2 A
scpufreq(current=931.42925, min=800.0, max=3500.0)
$ ?1 u/ m2 ~2 ?6 _>>>1 g6 r6 J3 s9 n
Memory
- T( h0 k5 |' t( ^+ O>>> import psutil$ ]2 s; k# o/ @$ H$ [6 S' j
>>> psutil.virtual_memory(); N7 [5 C( n v; m; C
svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, active=4748992512, inactive=2758115328, buffers=790724608, cached=3500347392, shared=787554304)
% b3 B% d3 p5 H4 w% V- N, x& @>>> psutil.swap_memory(); j7 }' Z9 A2 g
sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944) n3 y" R8 _- x+ J
>>>
1 N6 [" r# W! k2 o1 _Disks6 T7 V0 h5 S1 }5 P/ _) ^- ?) N' V
>>> import psutil
' |- B& ^! k7 c5 G( }. V>>> psutil.disk_partitions()& N N( E8 I( n4 e! }
[sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,nosuid'),9 _: _7 {, X" t
sdiskpart(device='/dev/sda2', mountpoint='/home', fstype='ext, opts='rw')]
, _; X; k+ U4 w- q5 P2 I. S>>>% d" L7 w `# S- F
>>> psutil.disk_usage('/')6 i5 ?! ]( {9 \8 t, [5 R
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
; ?1 m' g# x( G0 V. q>>>5 o7 i3 M: B4 d1 v. h
>>> psutil.disk_io_counters(perdisk=False)
! i( w6 E0 v; x: r6 tsdiskio(read_count=719566, write_count=1082197, read_bytes=18626220032, write_bytes=24081764352, read_time=5023392, write_time=63199568, read_merged_count=619166, write_merged_count=812396, busy_time=4523412)
& y& q; P6 T2 M2 ^>>>% ~$ T+ y& |9 M7 Q
Network
4 G& L* B# O6 i% G; r3 d3 o>>> import psutil
" { C* s! n* R: ~>>> psutil.net_io_counters(pernic=True)
; r9 A- ?5 \; n7 a, s( Y5 \0 R{'eth0': netio(bytes_sent=485291293, bytes_recv=6004858642, packets_sent=3251564, packets_recv=4787798, errin=0, errout=0, dropin=0, dropout=0),/ y0 k, ^7 ~" h) Z, a
'lo': netio(bytes_sent=2838627, bytes_recv=2838627, packets_sent=30567, packets_recv=30567, errin=0, errout=0, dropin=0, dropout=0)}" v9 X# Y2 Q. b! p
>>>
8 }2 R3 D$ L6 y>>> psutil.net_connections() G7 D1 |( x% W7 J5 q5 M; b
[sconn(fd=115, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED', pid=1254),$ O3 F! `+ j5 ] M. |
sconn(fd=117, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=43761), raddr=addr(ip='72.14.234.100', port=80), status='CLOSING', pid=2987),0 t! `" u) s! R' `) W2 B
sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=60759), raddr=addr(ip='72.14.234.104', port=80), status='ESTABLISHED', pid=None),
( _: j5 Y' X: d sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=51314), raddr=addr(ip='72.14.234.83', port=443), status='SYN_SENT', pid=None)
- @, u7 Z$ |! w1 U* |8 Z ...]5 x& F. L5 L+ z$ ~
>>>! O r8 N/ `$ f5 H- p! Q" C
>>> psutil.net_if_addrs(). g h' }% v; p: A: y
{'lo': [snic(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
g i) \2 C5 A snic(family=<AddressFamily.AF_INET6: 10>, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),5 H6 e6 \& l# }8 ^
snic(family=<AddressFamily.AF_LINK: 17>, address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', ptp=None)],7 t/ W. Q3 `( q- Z6 m' o% ^; h
'wlan0': [snic(family=<AddressFamily.AF_INET: 2>, address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', ptp=None),: o/ j) E; r5 Z: _
snic(family=<AddressFamily.AF_INET6: 10>, address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None),
( @6 Q* r; O% v3 O" z% j9 q7 A snic(family=<AddressFamily.AF_LINK: 17>, address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', ptp=None)]}
' T) `" r8 A1 S; H& m; Q: P>>>! i7 `2 t* _. W" K" @5 u- s# W
>>> psutil.net_if_stats()
! O }& @, `5 e3 w{'eth0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=100, mtu=1500),
( v3 l! V; h% ?; |% b8 d6 t7 L' ` 'lo': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_UNKNOWN: 0>, speed=0, mtu=65536)}+ K; C8 V0 V% P7 `3 ^
>>>* ]( `. ]0 M! ^% I! m1 n" l+ h+ w
Sensors
+ r3 z. E2 h% K0 q5 `3 c>>> import psutil7 S/ q9 E& Z R( S) }
>>> psutil.sensors_temperatures()* G' h+ n R( d( n F) s
{'acpitz': [shwtemp(label='', current=47.0, high=103.0, critical=103.0)],
# l% H% a8 d; ^1 U" k' d 'asus': [shwtemp(label='', current=47.0, high=None, critical=None)],2 h/ J( q( v q- Q8 t5 I
'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0),
) q( z- x8 E1 Y! s shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),
# w6 x; U1 J9 Z4 f6 h. k- | e shwtemp(label='Core 1', current=52.0, high=100.0, critical=100.0),( S7 k' N5 v2 J% ?
shwtemp(label='Core 2', current=45.0, high=100.0, critical=100.0),* G( a4 i* x7 S% n6 g0 O A
shwtemp(label='Core 3', current=47.0, high=100.0, critical=100.0)]}" O; E% B% h1 N2 \2 w, U9 y
>>>' M. _! z" Q2 [4 A/ v
>>> psutil.sensors_fans()
# ^( V7 H0 h" t: z, V. E- E6 @# T( ?{'asus': [sfan(label='cpu_fan', current=3200)]}8 r4 f* R4 m! C4 I$ P
>>>
6 e3 L0 y$ y. i# D5 I>>> psutil.sensors_battery()
% @% d( u3 e, _+ Psbattery(percent=93, secsleft=16628, power_plugged=False)9 _) U! U/ K$ |, G- r2 h* @
>>>
9 Y- \* W, ~$ V7 m! k7 O3 `( ]Other system info
& C B/ ^* E8 F, k>>> import psutil2 ]' b+ R5 H( `5 F+ Z
>>> psutil.users()6 ]! Q; p+ g- O5 S: [! H0 I# h
[suser(name='giampaolo', terminal='pts/2', host='localhost', started=1340737536.0, pid=1352),: F/ s" o f' v, n( s. J5 d% q5 Q5 [
suser(name='giampaolo', terminal='pts/3', host='localhost', started=1340737792.0, pid=1788)]
$ _- c" L: V6 j1 F& k>>>
5 l) f, _: \; U6 Y+ D6 h7 j>>> psutil.boot_time()$ ]* j9 a) C- L- L+ m, C
1365519115.0/ O1 U# a9 n5 \* J6 V; Y
>>>6 J* f0 p& g) ~; ^! M! Q; u5 u7 E
Process management# n1 y: c# y, E9 H" B
>>> import psutil
2 _) R' W. R @! n5 x>>> psutil.pids()
& b j2 p3 e& u% e/ P[1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224, 268, 1215, 1216, 1220, 1221, 1243, 1244,
, O7 x# \7 s5 X5 C+ N* o 1301, 1601, 2237, 2355, 2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245, 4263, 4282,
# B" W5 u+ ` l" P: ?( v 4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358, 4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446,. l9 |% H4 @; ~
5167, 5234, 5235, 5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]
/ _ ?/ x2 A9 f$ c; `>>>, e- P1 _4 i- U0 t$ [
>>> p = psutil.Process(7055)' H/ M* I% A5 f' {
>>> p.name()
) ` Q! K% n: G" U9 }'python'
. a, {) e$ k, I% w- f$ W% {>>> p.exe()# s& e3 a/ v1 {3 V3 {, I
'/usr/bin/python'
; {6 \. A: @- G, u# O>>> p.cwd()
( s. S. T! U P2 R, O* g% q2 s' |/ V'/home/giampaolo'
) R/ d* w# S# k2 l2 o7 N# v5 {>>> p.cmdline()
) T4 U0 P2 X! ^['/usr/bin/python', 'main.py']
1 |6 Z9 Y' h3 B3 I; n>>>
. q) _, L, C2 \( e) t>>> p.pid
0 I& ^. l; C' u5 y9 W7 q70554 `/ S1 i$ I' N. O% I
>>> p.ppid(); P) q4 H0 k9 c4 [% N9 A
7054
3 I4 O7 Z" ]5 K>>> p.parent()& k$ D8 j( X. C W9 l1 O
<psutil.Process(pid=7054, name='bash') at 140008329539408>
/ h) a1 O) _! k- R( T, |>>> p.children()
, {" O! H. y# A* u4 D1 ^7 i2 z[<psutil.Process(pid=8031, name='python') at 14020832451977>,7 O) ]6 j. E) ^7 |
<psutil.Process(pid=8044, name='python') at 19229444921932>]
$ \5 u# ~4 F. R. M" K( |% |# z X>>>- G/ Q( }+ X. _3 p# V( \" u8 Y
>>> p.status()! E Q) w/ y* @4 e$ s5 m- @. L5 }
'running'
2 L1 E, v( H! a) p>>> p.username()
3 E4 V% y4 V! B5 v'giampaolo'
2 G9 @ f( o* R>>> p.create_time()
' E( E6 p3 F; G7 B+ D1267551141.5019531. O1 X/ \9 b) C ]1 N7 y% Y! _
>>> p.terminal()* @1 H: w: K: z2 t0 L! U5 R; u$ Y
'/dev/pts/0'
2 ^7 {# T. z$ i4 Y>>>$ |7 H* t1 S: t0 H2 n
>>> p.uids()1 o) F9 S( e3 Z- T( O
puids(real=1000, effective=1000, saved=1000)
: N4 v7 [/ I2 n" s) C& [. X>>> p.gids()
9 u: w0 h8 g- N3 F q; tpgids(real=1000, effective=1000, saved=1000)
, l) m+ y8 A" \>>>
7 D. ?, Y2 s8 R4 q>>> p.cpu_times(): B7 s" J: O3 o: y6 ] i2 g4 a
pcputimes(user=1.02, system=0.31, children_user=0.32, children_system=0.1)
8 T* E0 B$ w6 V" z! w5 Y8 S>>> p.cpu_percent(interval=1.0): B+ v% i5 R q' T
12.12 t9 U( h# |) |8 b4 ~1 i
>>> p.cpu_affinity(), Z2 u6 q, l5 K6 E1 ~9 a# I
[0, 1, 2, 3]+ H& n2 }; y# P! w3 W7 K) {
>>> p.cpu_affinity([0, 1]) # set7 v- D( c* h2 i2 N* S6 p4 H4 [- r1 [
>>> p.cpu_num()0 s' s& K$ D2 ~7 j
1
) f. n4 m2 @4 v$ A: @- k3 N" E>>># Y7 f' Y, o, q$ N. T% i0 d6 Y
>>> p.memory_info()
; S7 d* P; U% w8 L( n: ~pmem(rss=10915840, vms=67608576, shared=3313664, text=2310144, lib=0, data=7262208, dirty=0)
& d7 ^. w* W3 H. V9 g0 N5 [; U>>> p.memory_full_info() # "real" USS memory usage (Linux, OSX, Win only). t+ Q1 Q J; h# B) m7 v
pfullmem(rss=10199040, vms=52133888, shared=3887104, text=2867200, lib=0, data=5967872, dirty=0, uss=6545408, pss=6872064, swap=0). P4 {& p0 F: K$ E
>>> p.memory_percent()
, ]* _; C' N0 ?* }( x0.7823
9 M( P7 I$ t, Y6 Z( O>>> p.memory_maps()
2 G- {5 M$ `, H' ` O[pmmap_grouped(path='/lib/x8664-linux-gnu/libutil-2.15.so', rss=32768, size=2125824, pss=32768, shared_clean=0, shared_dirty=0, private_clean=20480, private_dirty=12288, referenced=32768, anonymous=12288, swap=0),
( @, s+ x: W, ~1 J: O/ f pmmap_grouped(path='/lib/x8664-linux-gnu/libc-2.15.so', rss=3821568, size=3842048, pss=3821568, shared_clean=0, shared_dirty=0, private_clean=0, private_dirty=3821568, referenced=3575808, anonymous=3821568, swap=0),
; {4 [/ D* H* ]. `/ m pmmap_grouped(path='/lib/x8664-linux-gnu/libcrypto.so.0.1', rss=34124, rss=32768, size=2134016, pss=15360, shared_clean=24576, shared_dirty=0, private_clean=0, private_dirty=8192, referenced=24576, anonymous=8192, swap=0),) C2 R8 C% @: _: D. X) _% s
pmmap_grouped(path='[heap]', rss=32768, size=139264, pss=32768, shared_clean=0, shared_dirty=0, private_clean=0, private_dirty=32768, referenced=32768, anonymous=32768, swap=0),) b& m/ f# w+ L7 q. A5 n2 R( y
pmmap_grouped(path='[stack]', rss=2465792, size=2494464, pss=2465792, shared_clean=0, shared_dirty=0, private_clean=0, private_dirty=2465792, referenced=2277376, anonymous=2465792, swap=0),8 u* n9 e' i! B& E
...]' C& Y: ^: S$ O$ j* v/ b
>>>$ F. N: `0 B" e2 m+ N# G) J
>>> p.io_counters()
& f1 t& w* G9 y( j2 wpio(read_count=478001, write_count=59371, read_bytes=700416, write_bytes=69632, read_chars=456232, write_chars=517543)
' i% M) O* U: X2 d; M+ f& v>>>7 v; H: Q' B |- J7 z Z
>>> p.open_files()
3 B) g6 r& e! D% z[popenfile(path='/home/giampaolo/svn/psutil/setup.py', fd=3, position=0, mode='r', flags=32768),
1 D2 x/ b: e4 m8 A0 a2 Z8 S popenfile(path='/var/log/monitd', fd=4, position=235542, mode='a', flags=33793)]
, U! z: F; r9 O7 c>>>
Q( b& w3 z0 n% v) i- y/ m, |>>> p.connections(): b* N; M, g) ~) l
[pconn(fd=115, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED'),) M* E# ?* k3 W2 `
pconn(fd=117, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=43761), raddr=addr(ip='72.14.234.100', port=80), status='CLOSING'),$ q* w" ]7 _' |
pconn(fd=119, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=60759), raddr=addr(ip='72.14.234.104', port=80), status='ESTABLISHED'),
. E1 \' W; C1 j1 z1 S2 I pconn(fd=123, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=51314), raddr=addr(ip='72.14.234.83', port=443), status='SYN_SENT')]
! b$ f9 B0 B. V8 e# H) S>>>. w! ]0 m# R+ g4 s
>>> p.num_threads()
% Z& ?# D5 J5 D3 p! Y5 \$ J/ t4
9 r! e. g/ O3 b4 p>>> p.num_fds()
' @. a6 R1 z9 C! V% |& W7 V8
& O+ S) w$ @! h' ^>>> p.threads()
: K3 j$ A. g5 N0 ?[pthread(id=5234, user_time=22.5, system_time=9.2891),
# [! K& }1 T7 J( b' ^ pthread(id=5235, user_time=0.0, system_time=0.0),
6 R& k# Q- l! ?. @" @ pthread(id=5236, user_time=0.0, system_time=0.0)," t0 E% Y1 N: [$ ~
pthread(id=5237, user_time=0.0707, system_time=1.1)]
& B2 J& J# i1 t9 [ @7 G>>>- q6 r/ n$ Q3 v/ e" h9 j: r; I
>>> p.num_ctx_switches()
9 v/ J( H9 k% Bpctxsw(voluntary=78, involuntary=19)8 V1 q$ F2 I0 |, X" K1 T: y. H! u
>>>
% ]% s9 `$ f& [- Y) W! j: E>>> p.nice()" v2 h! g. U8 P# L& L
0% U, B t- ~0 b
>>> p.nice(10) # set A4 V9 ^6 W6 }: ^7 c3 r4 k4 ?
>>>% |2 _' p7 j. X5 V+ X9 ?3 M
>>> p.ionice(psutil.IOPRIO_CLASS_IDLE) # IO priority (Win and Linux only)9 Y6 j, U( `+ z1 k5 o# ~) s
>>> p.ionice()# y3 L- V8 h. S, m: j" D9 E* H
pionice(ioclass=<IOPriority.IOPRIO_CLASS_IDLE: 3>, value=0). C) D+ s. d7 T% o2 K1 n x
>>>
6 O! q3 [8 V9 z& B>>> p.rlimit(psutil.RLIMIT_NOFILE, (5, 5)) # set resource limits (Linux only)% \/ F* H& |+ h" l1 o, k( v a
>>> p.rlimit(psutil.RLIMIT_NOFILE) v5 F9 T z8 n2 U5 z
(5, 5)
9 h) _, v9 G8 U+ B; J9 E>>>* ~; o; l- k* S4 S+ K5 j, x$ i% V
>>> p.environ()
+ T$ Z2 H; f6 r. `- y2 \3 r) V{'LC_PAPER': 'it_IT.UTF-8', 'SHELL': '/bin/bash', 'GREP_OPTIONS': '--color=auto',
0 V) T) w0 Y6 _+ ]( x/ j8 g6 ?'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg', 'COLORTERM': 'gnome-terminal',
* a1 J) u% P, k, n' S7 g" d ...}
9 T- k$ u7 H5 Y. ?- A: D; ~+ N' e>>>
W# D; U6 `. v) y>>> p.as_dict()6 G1 ?8 {" ^# {& B2 r9 r% r
{'status': 'running', 'num_ctx_switches': pctxsw(voluntary=63, involuntary=1), 'pid': 5457, ...}% x$ L1 N# S$ V; I* K
>>> p.is_running(), C% d, v; E! v; m( [( H
True
- u; {( R$ ~/ q& {>>> p.suspend()- }: Y0 h% d* T3 E' H' m
>>> p.resume()! G1 t8 K) I R
>>>- h; X8 |% {6 c7 k. v! [
>>> p.terminate()7 a0 _ t/ H6 k, A
>>> p.wait(timeout=3)
/ S# i* L5 s3 y6 Z: }0
7 @1 x+ P' w) E) X>>>
) K9 d. G" i L: g1 d7 \! M>>> psutil.test()! u' v" n) X0 ~% W! t" I
USER PID %CPU %MEM VSZ RSS TTY START TIME COMMAND4 w2 o+ i) W* n! W6 T! y; X, r: @& }
root 1 0.0 0.0 24584 2240 Jun17 00:00 init
: V3 L/ M, Y4 broot 2 0.0 0.0 0 0 Jun17 00:00 kthreadd
' r1 V L1 ~% D+ F% Droot 3 0.0 0.0 0 0 Jun17 00:05 ksoftirqd/0
2 f4 a) O/ A. a; g...
# O9 A; P0 ?. Rgiampaolo 31475 0.0 0.0 20760 3024 /dev/pts/0 Jun19 00:00 python2.4
& |% L! t+ C" }$ Kgiampaolo 31721 0.0 2.2 773060 181896 00:04 10:30 chrome
* i- c9 U1 {+ u' groot 31763 0.0 0.0 0 0 00:05 00:00 kworker/0:1
0 a3 }, p9 S" M: m3 h>>>+ Z3 E% ~* @) K3 g J8 l
Further process APIs( U/ j- t' F% w
>>> import psutil3 O4 d6 r; ]/ \6 V/ N- J
>>> for proc in psutil.process_iter(attrs=['pid', 'name']):
& @0 u% m& v: K- j... print(proc.info)$ i0 n) u7 e6 v* }
...
$ ^# Q7 {# L! L2 v{'pid': 1, 'name': 'systemd'}% K& e! j' l: Z4 ]: U" ^: u
{'pid': 2, 'name': 'kthreadd'}' A' _6 S: c% A3 P' X9 l( ^6 p' [
{'pid': 3, 'name': 'ksoftirqd/0'}
/ T, f$ [& F9 C* x! L...
: A* Q: {2 \0 K>>>
! P2 h: T2 o% g$ s$ x- h9 _* d>>> psutil.pid_exists(3)
" v1 H3 k+ H, \5 f3 X* a, z1 GTrue
8 e# J: G g' k( {>>>) B( i2 Q7 j# `" F8 _( _
>>> def on_terminate(proc):
: G2 z" \9 Q+ `* `9 Y... print("process {} terminated".format(proc)). m3 d/ ]7 E& r- C# G3 q6 o1 J
...
" x4 ~* x! O: `) U8 ~>>> # waits for multiple processes to terminate0 w/ n& o( o4 X4 _, E
>>> gone, alive = psutil.wait_procs(procs_list, timeout=3, callback=on_terminate)
/ B; X% m7 d: M& g! d/ ^8 G>>>
* H0 v3 I/ d. a6 u: W3 B& v& ^Popen wrapper:) ]1 J! s5 U9 G# u0 R8 s+ k Q2 h
( O* D$ ~5 y$ D3 K>>> import psutil. S* i. x. F5 N9 {! L p& Q
>>> from subprocess import PIPE/ U* f' b& O! {+ D/ @0 i- P3 |1 ~' v
>>> p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"], stdout=PIPE)6 S5 J. L, f+ r- o4 e5 I$ `
>>> p.name()4 x% h, u1 x9 i9 X
'python'
N0 C- \7 x" {4 D+ i>>> p.username()4 y' k" J6 K8 c9 C
'giampaolo'
/ S2 H1 f- j$ x2 R& g3 l' B3 ^- I>>> p.communicate()0 N& P" L' v2 e0 R/ Z
('hello\n', None)
, x; m' |* V6 ]% }! M>>> p.wait(timeout=2), j# Y( ?* M9 m# t* O" s s
0
; R% Y! Z: T" ]>>>
& ^8 A/ u; ], g4 yWindows services
7 J4 p1 \# s6 O: b3 |. J0 S>>> list(psutil.win_service_iter()): Z9 v/ I3 x. y) w+ B) c1 Q& R
[<WindowsService(name='AeLookupSvc', display_name='Application Experience') at 38850096>,4 A$ s& r7 N9 j; P* l5 \
<WindowsService(name='ALG', display_name='Application Layer Gateway Service') at 38850128>,
% X O, i1 I6 [( Z/ @: a <WindowsService(name='APNMCP', display_name='Ask Update Service') at 38850160>,
7 X5 X9 @' F1 U; L- t <WindowsService(name='AppIDSvc', display_name='Application Identity') at 38850192>,
8 a" U9 m: z7 Y7 Z" c8 \ ...]
; @, y( i% O: Y>>> s = psutil.win_service_get('alg')" \" L' R+ o% y% l6 |- \9 \3 r# I
>>> s.as_dict()
* A$ k2 F3 P8 E. E{'binpath': 'C:\\Windows\\System32\\alg.exe',
/ ~; e7 K2 M8 P% |- P% V: b$ f 'description': 'Provides support for 3rd party protocol plug-ins for Internet Connection Sharing',
* O+ v! v" o1 Q) G G 'display_name': 'Application Layer Gateway Service',. H+ o5 r! l; B: h
'name': 'alg',
9 N* `2 y# N3 K6 M1 u* h 'pid': None,; K! z1 l" [) E4 d* X
'start_type': 'manual',
- L3 x7 E, r2 d! K# C2 c( M" { 'status': 'stopped',* V0 ~% }- ^* F* i5 ~0 u
'username': 'NT AUTHORITY\\LocalService'}
7 u+ u! W3 U2 ]% g7 tOther samples |
|