|
|
楼主 |
发表于 2017-12-23 21:01:22
|
显示全部楼层
Example usages
5 V- ~% _; P9 Y/ O
+ c5 G: L. e4 JCPU
7 P- q2 p% x8 e* y1 |>>> import psutil
6 W Z q. c' Q8 ~' C$ {7 h>>> psutil.cpu_times()
, b4 T0 u4 b, m/ e/ X. I5 K+ Wscputimes(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)% w% I& r3 y# M* ~# s$ }" c2 G9 W
>>>
2 E9 Y; ^: m- X' `8 t>>> for x in range(3):; b% {( W* u4 U) w
... psutil.cpu_percent(interval=1)+ `& I/ l1 s9 p* o+ f3 X
... G/ R2 N9 \) m( c# n- k3 _
4.05 f6 N* m; Y& b
5.9
# T' q& Q6 g1 X( V3.8' v1 i% R$ ~3 ^. {/ L3 h# Y
>>>
, t" w" z0 v! B: ?. v3 G! F>>> for x in range(3):
9 ]' K& x% z5 e5 p6 A5 y" `1 F... psutil.cpu_percent(interval=1, percpu=True)7 q# k5 s8 b( b( y
...: H( I. o% [* O% f& N4 }
[4.0, 6.9, 3.7, 9.2]) K& i! M/ X0 \8 Z' \8 k
[7.0, 8.5, 2.4, 2.1]
+ Z) H; b) T; M. D7 z[1.2, 9.0, 9.9, 7.2]" J+ {5 T/ K8 n
>>>! _$ t X2 `; J5 J
>>> for x in range(3):5 R# ?' h" N' K+ T$ A
... psutil.cpu_times_percent(interval=1, percpu=False)
7 s& o( c, B' G9 b...7 N8 L4 o8 c- x1 V2 U5 L6 E3 Y2 t
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)
8 ~! \& B- l& Z3 o, f+ Vscputimes(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)
$ ~) f7 z8 M$ hscputimes(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)
, ]5 b' B* P6 G% }3 B>>>
1 \" A' j; P7 ~% T2 R# v>>> psutil.cpu_count()5 s; m0 r3 c" T( T# ]1 g a
4( ]% X/ h4 H8 X
>>> psutil.cpu_count(logical=False)
9 T5 |2 ]( ~, I7 Z4 D/ r2 R2% v% I2 v8 R2 C8 t
>>>
* t& t! [& I! G P8 N+ d5 v4 q>>> psutil.cpu_stats() p2 F8 i: E, n: G
scpustats(ctx_switches=20455687, interrupts=6598984, soft_interrupts=2134212, syscalls=0)
8 w- p9 e ~/ o9 @9 o b/ U>>>0 x, T0 X6 d5 T$ T/ v
>>> psutil.cpu_freq()
( P/ N6 w) F9 Q% i$ v: e( z) t0 O$ rscpufreq(current=931.42925, min=800.0, max=3500.0)7 L( j, }( J7 w+ w! n" a4 J* k
>>>
9 P1 `3 t! Y3 [7 j3 A: FMemory( G$ ^+ s- Y& C2 q# J
>>> import psutil: b" w& H- ^5 v+ o3 P: v, G
>>> psutil.virtual_memory()5 Y; A0 p0 J- U2 L9 L7 z: p
svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, active=4748992512, inactive=2758115328, buffers=790724608, cached=3500347392, shared=787554304)3 y g* H) g0 H! Z4 P9 w/ x
>>> psutil.swap_memory()
* H& W* @- ~, j8 n7 O; h7 q g: Nsswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944)
5 K8 g5 w$ u3 ?3 w# t0 k) C>>>! S9 d5 b* {; x5 f) T
Disks; L) |! Z4 ~* x
>>> import psutil. a; I( G# v5 j2 s" P* I
>>> psutil.disk_partitions()+ P3 `4 s6 L9 }: b' A2 Z: ]
[sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,nosuid'),: r& G! \9 u" g% L# v
sdiskpart(device='/dev/sda2', mountpoint='/home', fstype='ext, opts='rw')]% e; r* |( |- q6 s: U& o3 D
>>>
. a( C) e6 b& i( t>>> psutil.disk_usage('/')
, d. F% n% [1 s- ]' ?! e1 {8 m2 @sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
4 m% K3 u, M* X. d- |4 y( ]>>>; S- l# _" X7 K+ P" R
>>> psutil.disk_io_counters(perdisk=False)
% m/ ^: A3 G! G2 qsdiskio(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)
2 N) p: h. M+ p2 a( N) Y4 g- L) d/ G>>>
8 W3 m, } ]+ \5 M" {Network
4 _0 k! c8 W$ a3 O* K>>> import psutil4 a! r' \/ l% P0 H- k* X' W& m" V
>>> psutil.net_io_counters(pernic=True)( d9 w- M k" u% P. [1 A! _
{'eth0': netio(bytes_sent=485291293, bytes_recv=6004858642, packets_sent=3251564, packets_recv=4787798, errin=0, errout=0, dropin=0, dropout=0),: w/ {8 L1 s8 b# I1 }
'lo': netio(bytes_sent=2838627, bytes_recv=2838627, packets_sent=30567, packets_recv=30567, errin=0, errout=0, dropin=0, dropout=0)}
0 S2 G7 A/ y. V8 O" W>>>
# ^5 |5 Z! G1 ?>>> psutil.net_connections()8 L1 R* k+ z3 q; R2 G
[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),
0 a9 P) r$ j' b( c 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),% \1 r+ q x4 d) v2 e
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),; f; ~0 E0 f2 s' w: _' B2 _) V
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)4 @' C0 u) ]6 G: A* j. M$ M
...]) A! e( g0 V5 G4 H. W6 K
>>>
1 {2 G6 K* i; k! f>>> psutil.net_if_addrs()
) J( c# s# Q% c2 X! E0 a- A; i{'lo': [snic(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),# ~1 ]: i' b+ H+ d# S* }+ |. L) G
snic(family=<AddressFamily.AF_INET6: 10>, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
d( u9 Q' w$ {8 K/ d/ n& ~ snic(family=<AddressFamily.AF_LINK: 17>, address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', ptp=None)],
. c; v K! \2 i1 s7 y5 K 'wlan0': [snic(family=<AddressFamily.AF_INET: 2>, address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', ptp=None),
6 U( s& b# H+ G( @3 a) T snic(family=<AddressFamily.AF_INET6: 10>, address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None),
; B9 j L6 Z* }6 t( Q+ o$ Y snic(family=<AddressFamily.AF_LINK: 17>, address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', ptp=None)]}
5 Z0 I, {1 z6 B, p) e>>>
. e, x0 v, K& U- }6 c: m9 d>>> psutil.net_if_stats()5 _4 Z; l8 b; b; a0 h
{'eth0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=100, mtu=1500),$ |- i; H3 v4 t
'lo': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_UNKNOWN: 0>, speed=0, mtu=65536)}
* l& d. M0 j. b( f \>>>$ ?) A& Q1 W' h4 M/ D U) s, Y' [0 l
Sensors- g9 w/ M, I s' \! i! L. |: B
>>> import psutil
8 ~1 @2 l( {$ t3 o X" I: ?0 ~>>> psutil.sensors_temperatures()
* H7 a+ D$ g7 ?( n{'acpitz': [shwtemp(label='', current=47.0, high=103.0, critical=103.0)],
1 S9 A0 i) h' Y 'asus': [shwtemp(label='', current=47.0, high=None, critical=None)],6 n8 u2 \, D) Y
'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0)," U$ X0 A$ F2 N7 e+ }: h8 [
shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),
) q4 l- g& @/ z- y" A7 J shwtemp(label='Core 1', current=52.0, high=100.0, critical=100.0),6 a) S: f; g. ^4 T' [; S0 L) U
shwtemp(label='Core 2', current=45.0, high=100.0, critical=100.0),# y$ R& M0 ~4 I" x% c$ ?# R. F
shwtemp(label='Core 3', current=47.0, high=100.0, critical=100.0)]}& e/ y6 h' K; o/ s
>>>; G7 N, z( Y/ d1 _6 R8 b
>>> psutil.sensors_fans()
% `9 f5 H7 P% J6 F+ l$ X- x{'asus': [sfan(label='cpu_fan', current=3200)]}
& H7 a9 F, K8 e4 L>>>( G7 ? t, k3 p+ I6 [) G& m
>>> psutil.sensors_battery()
) d$ b; p& P. e7 @& n1 bsbattery(percent=93, secsleft=16628, power_plugged=False); F7 D* {* y$ l/ q2 q
>>>
' l' I. i# P5 S j2 jOther system info
) Y+ L( }1 T# s, z( J" p>>> import psutil* u+ v8 z T- V9 x! N7 q
>>> psutil.users()" u" I3 R7 H9 J8 c9 \# {
[suser(name='giampaolo', terminal='pts/2', host='localhost', started=1340737536.0, pid=1352),
! l [8 V1 h( B' E% M suser(name='giampaolo', terminal='pts/3', host='localhost', started=1340737792.0, pid=1788)]
- W2 m, q: ~0 s2 N. H>>>
! _: O& }/ B+ u+ F8 g6 ~6 f! O0 }! g>>> psutil.boot_time()
5 J _% q2 o: ^, a! n3 {4 j3 p1365519115.0* x% i u4 V! L4 B3 o) b
>>>
- ? {6 q" D- [) e" [0 V* ZProcess management4 o6 T0 F$ b0 a+ l
>>> import psutil
6 J, x: ` b0 @! \: ~2 |7 H>>> psutil.pids()
. T, Y" y7 l" z5 a( [3 k[1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224, 268, 1215, 1216, 1220, 1221, 1243, 1244,2 q3 m2 n& m' X* Z4 G" P
1301, 1601, 2237, 2355, 2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245, 4263, 4282,! c9 N% T- C* V
4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358, 4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446,
0 F3 m* Z4 @# B; w1 J( t$ t" z 5167, 5234, 5235, 5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]+ d2 r* R v$ R5 u2 e* O
>>>
: O! l: B: w. C T>>> p = psutil.Process(7055); c! B" q" J4 @3 W* ]2 ?
>>> p.name()
) @& }$ l/ w/ m( @0 D! _) d; S, L'python'
- P- D. ]+ U. ~# s) S- j$ z>>> p.exe()
/ y( z2 [5 c6 {9 P( r u2 G'/usr/bin/python'5 X, y8 _. [4 a* p
>>> p.cwd()
& U2 a8 B1 ]# l+ a: r. @# n( l) Y'/home/giampaolo'
" B! ^. W3 D8 w* q>>> p.cmdline()
6 d: ]" y1 p$ q9 J['/usr/bin/python', 'main.py']3 A2 t9 _' `2 z2 \0 m3 E' Z
>>>
( Q* |" U) |* T' w4 v7 i# C>>> p.pid0 \5 `7 g+ {. y X
7055
/ [$ O; e' |5 i8 C>>> p.ppid()
# W: [7 d, b: U6 Z# s7054
4 q$ p! }' Q1 U/ o* I>>> p.parent()
) Q0 V7 n2 M2 W; A/ Y4 o" p<psutil.Process(pid=7054, name='bash') at 140008329539408>
, Y7 E3 |" n e! j>>> p.children()! a" U& d( f& [% n: s. B: h
[<psutil.Process(pid=8031, name='python') at 14020832451977>,- q6 u7 n; Y/ {& N j) `1 q! p
<psutil.Process(pid=8044, name='python') at 19229444921932>]7 }* a4 I( K( A) L" v: P" `
>>>
6 B( f+ V& ]& M5 O( B+ i>>> p.status()- B# J4 T" Z \! U) _ j
'running'/ T$ `# ^& \5 L% v/ w6 ~/ j
>>> p.username()
2 c. C' a3 k" Y0 _4 r! D& G'giampaolo'
9 v6 j1 R6 {, N: h>>> p.create_time()
( ` `! P' W1 N. d+ [7 a1267551141.50195318 o3 S( ^, G+ [% u+ A; Q W" t
>>> p.terminal()& o% U: b Q( R3 N! ]
'/dev/pts/0'7 P6 F0 l8 z# H: B
>>>
* t6 N$ I B5 J5 ` u# P# m>>> p.uids(), v/ R& ]5 h2 e( A
puids(real=1000, effective=1000, saved=1000)
3 G+ c2 H* {3 ?" n- @/ {>>> p.gids()
& e- i1 V/ |2 l$ `* p) @9 R9 _pgids(real=1000, effective=1000, saved=1000)) J7 O2 R) |- N
>>>
. G9 S8 x! W. m+ l/ V3 B' K>>> p.cpu_times(), a, [- I* L, ~ a4 o( Y
pcputimes(user=1.02, system=0.31, children_user=0.32, children_system=0.1)+ k* M- |8 Q/ k( {4 ^& N6 H
>>> p.cpu_percent(interval=1.0)
! ~4 A1 H7 R+ l: I12.1
5 Z+ r+ H* |* c! Z3 }9 } c>>> p.cpu_affinity()$ T" A( v7 `, }) G. j- O9 W) H
[0, 1, 2, 3]2 ?) i& p2 O$ G( e. }( D7 A, A4 L
>>> p.cpu_affinity([0, 1]) # set
* }1 d- Z% t, A4 e>>> p.cpu_num()
$ _4 I5 l) M" E$ @' U Q! w1/ {& F0 t. b' P P
>>>
4 r1 [. v* ^' X/ w: N4 I>>> p.memory_info()5 C4 r2 G4 v- ]+ [# h
pmem(rss=10915840, vms=67608576, shared=3313664, text=2310144, lib=0, data=7262208, dirty=0)& {2 R+ A8 ~# z+ Z2 T5 y [
>>> p.memory_full_info() # "real" USS memory usage (Linux, OSX, Win only)$ K; |/ G, J9 S$ h5 G7 d6 O9 K8 X
pfullmem(rss=10199040, vms=52133888, shared=3887104, text=2867200, lib=0, data=5967872, dirty=0, uss=6545408, pss=6872064, swap=0)
' o& n! J' H" X. ]# k! d>>> p.memory_percent()
0 b' ]! @! w* V4 E0 r) ^; ^0.7823
3 ^, B- T1 X' \4 l1 {3 X: s, a>>> p.memory_maps()
; i a* U0 F; K; n$ K[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),
& w7 M* `2 r6 |' 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),/ R. D: B. }. F; M ~3 t! L
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),# `0 ?( G2 b$ \' ~& G
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),
& v2 T3 x0 w& J2 ?. @8 P3 R6 ? 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),
7 U# q' u. j: A1 E h2 S ...]& F8 V$ f6 i/ Y$ d9 T6 n& U5 i: Q
>>>
. X M# [1 C' G0 |# B! `: p0 V8 t>>> p.io_counters()
5 ^: Q ?0 H1 ~+ |$ ~; q+ Hpio(read_count=478001, write_count=59371, read_bytes=700416, write_bytes=69632, read_chars=456232, write_chars=517543)
; `: ^4 E$ r# D, l1 C>>>; w2 | M& p# M/ O
>>> p.open_files()3 t; P2 v& g5 k
[popenfile(path='/home/giampaolo/svn/psutil/setup.py', fd=3, position=0, mode='r', flags=32768),
+ Q2 H$ a! z' t5 \; e4 _4 _ popenfile(path='/var/log/monitd', fd=4, position=235542, mode='a', flags=33793)]
; R/ S+ T. T; _( W8 M+ Y# [>>>% R6 o" C/ z& {; c4 m
>>> p.connections()" r( U6 n; a2 O: y: F% x
[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* g5 \2 p9 U; l2 G 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'),3 v* ]# E! F+ h6 [% s
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'),
2 S( X+ k a8 ]4 q ], }" J 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')]& v5 X0 m) I5 a( _
>>>5 \" I% d/ a2 v' s
>>> p.num_threads()
: a/ V' ]' J: u1 W! y& I47 ] ]5 z4 k [# J& R1 b0 t
>>> p.num_fds()
1 r( S) r% W- s" S8
$ a9 g5 c, m- m8 i>>> p.threads()
4 P. Z: a0 Y; u z$ a) c9 A3 I[pthread(id=5234, user_time=22.5, system_time=9.2891),
$ W( ?; r) R7 H' W& a pthread(id=5235, user_time=0.0, system_time=0.0),9 M \& |4 @/ `. H6 S
pthread(id=5236, user_time=0.0, system_time=0.0),$ f, C* v7 ~3 R, b
pthread(id=5237, user_time=0.0707, system_time=1.1)]
, Y4 G ~+ y/ r6 W" o>>>
2 \; p& v/ Q- Z! @. }& i>>> p.num_ctx_switches()7 h5 G/ z4 ]: n5 p! O2 R2 m, @: T
pctxsw(voluntary=78, involuntary=19)1 H4 `1 F/ d4 F- A6 l1 V
>>>/ C, l$ c7 C' T/ H& D ?, v* K: {
>>> p.nice()- s$ _" A. R. a9 f. |( |9 }
0! t4 M8 d, {# r/ N7 W
>>> p.nice(10) # set! Q2 L- C. M* Z+ N5 z# Y
>>>5 u g4 S5 g) T# s0 y2 v/ O
>>> p.ionice(psutil.IOPRIO_CLASS_IDLE) # IO priority (Win and Linux only)3 T$ S7 ?' ?0 S) ~- j' z0 e5 F
>>> p.ionice()
/ l. @; R4 W0 ipionice(ioclass=<IOPriority.IOPRIO_CLASS_IDLE: 3>, value=0)
% t. T$ d) X/ ~: X: O>>>7 x6 X5 \( p( j. V7 j h& {8 e1 N
>>> p.rlimit(psutil.RLIMIT_NOFILE, (5, 5)) # set resource limits (Linux only)
2 a- [9 E$ g& L>>> p.rlimit(psutil.RLIMIT_NOFILE)
. S7 {6 L0 Q. X4 z2 x, {' b(5, 5)
+ U4 O; V, T; }; o; U5 U>>>
- ]8 g9 a y3 _2 f `$ `: v>>> p.environ()
9 J& }9 j" i/ f* D% J- S6 h! i{'LC_PAPER': 'it_IT.UTF-8', 'SHELL': '/bin/bash', 'GREP_OPTIONS': '--color=auto',
+ b) G* g* |$ B' s'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg', 'COLORTERM': 'gnome-terminal',& x3 R5 `" Y+ e4 X) j6 h; k
...}
# v" P. F: J3 a+ _0 p>>>
& u: t' u# Y' P; ?: k; k7 ^>>> p.as_dict() B* C$ V5 e5 U z0 _4 p- k
{'status': 'running', 'num_ctx_switches': pctxsw(voluntary=63, involuntary=1), 'pid': 5457, ...}1 z1 O4 W, e; e$ Y
>>> p.is_running()4 ^: S9 Z) N* K
True7 G2 k; ^7 x: s; \! R" n/ s
>>> p.suspend()
: M7 i* _3 }7 g( }- G9 `: y6 {>>> p.resume()
* P+ V5 ]: c! t$ E>>>4 v/ h# T- I9 _
>>> p.terminate()6 X; c0 R; h, l+ @, m
>>> p.wait(timeout=3)
4 ]9 T+ r6 Y) u2 T2 ^0
+ n$ t; W1 E0 I8 g>>>2 L/ \1 P1 {9 Q( J6 X3 a/ G
>>> psutil.test()+ y. v% r+ h8 r3 k
USER PID %CPU %MEM VSZ RSS TTY START TIME COMMAND
2 A4 n* W8 l- w! droot 1 0.0 0.0 24584 2240 Jun17 00:00 init( T' F. d6 e% W# k9 F2 s
root 2 0.0 0.0 0 0 Jun17 00:00 kthreadd! J3 K+ q- i4 `* j
root 3 0.0 0.0 0 0 Jun17 00:05 ksoftirqd/08 s& w( @. u+ a, s/ P
...# r. @& o' g0 |6 _4 u
giampaolo 31475 0.0 0.0 20760 3024 /dev/pts/0 Jun19 00:00 python2.4
# j8 k6 Y8 I( R9 @giampaolo 31721 0.0 2.2 773060 181896 00:04 10:30 chrome
j7 s+ Q- ]! T( Y4 \% s: L; troot 31763 0.0 0.0 0 0 00:05 00:00 kworker/0:1
7 I% @5 b& k1 F t3 N>>>! i9 `3 @/ P6 r9 a j% s
Further process APIs9 Q& t& I& G4 L6 P/ s
>>> import psutil3 J3 u% I( H7 l
>>> for proc in psutil.process_iter(attrs=['pid', 'name']):! s9 _! s$ W% h b* @( z) r
... print(proc.info)3 E9 u$ Z: a( l9 u' x9 c
...
+ n9 U7 o4 }8 j" Y" M: N{'pid': 1, 'name': 'systemd'}: U% n8 E5 Q) ]! a3 Y2 u, c8 G
{'pid': 2, 'name': 'kthreadd'}7 |9 q2 h5 K( F. Z+ [4 k0 _) l
{'pid': 3, 'name': 'ksoftirqd/0'}
# A6 V2 p" h I7 ?...
3 Y" _( d8 D; K# _1 H P& U7 H>>>6 N6 l& P! W. c2 F# B
>>> psutil.pid_exists(3)
- j1 [& p( ~% e* ?2 M# x6 }& ITrue
7 i, B& ? N0 B4 R; h& f0 i: A>>>3 |7 B. {- L8 T% q8 a
>>> def on_terminate(proc):( a. \# X( X( q* v! a
... print("process {} terminated".format(proc))- ~" i" A5 N4 h+ y# H
...0 q# X$ _+ e& d
>>> # waits for multiple processes to terminate
* u1 X. ?0 H+ R1 I>>> gone, alive = psutil.wait_procs(procs_list, timeout=3, callback=on_terminate)
# Y; x4 u$ h- R% q1 Y9 m>>>
8 p: j) J, p5 W/ S# \0 uPopen wrapper:
) W6 @" V4 l" P6 {! k# p0 C% d, ~( q/ C) d, X1 F! k
>>> import psutil
. W' `4 D; A" M9 ~4 [) G>>> from subprocess import PIPE$ `/ R' Y5 W3 h
>>> p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"], stdout=PIPE)3 p6 `" [$ Z& x! [
>>> p.name()& z/ Q6 U) S l' I+ M' m
'python', x9 R. R+ g/ f* m, {5 A; t0 I
>>> p.username()
! K, S+ Z( W# M, p' _8 a3 ~'giampaolo'
) r) U2 G3 `7 \>>> p.communicate()
* [, m( S- Q" r4 k# C" d) G('hello\n', None)3 l4 [6 P& q3 I9 \8 B9 g
>>> p.wait(timeout=2)" E5 `" b% q" e( i, h
08 f& R4 I& f K- a$ j( L0 s- w
>>>2 K* S/ d9 m0 G9 ^9 H& O3 i* j) U
Windows services- J7 e2 o) U$ u' Q' I
>>> list(psutil.win_service_iter())
/ z# _5 Y6 r+ C[<WindowsService(name='AeLookupSvc', display_name='Application Experience') at 38850096>,
8 y* P3 f p! x! d2 i9 L <WindowsService(name='ALG', display_name='Application Layer Gateway Service') at 38850128>,
) ^- U$ W- D0 |5 d; W <WindowsService(name='APNMCP', display_name='Ask Update Service') at 38850160>,
1 m! k) m) R& u Z0 m <WindowsService(name='AppIDSvc', display_name='Application Identity') at 38850192>,
7 A/ X' l/ c$ E' ~4 A' i1 s: q ...]9 w0 P5 i0 @% ?' Y7 h
>>> s = psutil.win_service_get('alg')
9 h7 L* X# k$ _# R>>> s.as_dict()5 G) ]2 w+ E3 U
{'binpath': 'C:\\Windows\\System32\\alg.exe',
3 v3 E5 Q5 a+ j7 g2 B* O 'description': 'Provides support for 3rd party protocol plug-ins for Internet Connection Sharing',+ K* Q: s6 O: P+ e A
'display_name': 'Application Layer Gateway Service',! g) d1 \* m9 P, c' |( s, {
'name': 'alg',8 h t3 v4 b7 [* ]; o
'pid': None,
. I3 N' f" A2 \6 ]% M2 n: O 'start_type': 'manual',
- H" ~7 e) O+ ]' ` e3 Z2 [6 ^9 m 'status': 'stopped',8 d5 }3 e$ x5 X) k* P4 }$ b2 u
'username': 'NT AUTHORITY\\LocalService'}
+ m7 O2 Y" l# W$ `Other samples |
|