Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Side by Side Diff: third_party/psutil/examples/process_detail.py

Issue 8919026: Remove psutil from tree, install via install-build-deps.sh (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Sort package list. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/psutil/examples/killall.py ('k') | third_party/psutil/psutil/__init__.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 #
3 # $Id: process_detail.py 1143 2011-10-05 19:11:59Z g.rodola $
4 #
5 # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved.
6 # Use of this source code is governed by a BSD-style license that can be
7 # found in the LICENSE file.
8
9 """
10 Print detailed information about a process.
11 """
12
13 import os
14 import datetime
15 import socket
16 import sys
17
18 import psutil
19 from psutil._compat import namedtuple
20
21
22 def convert_bytes(n):
23 if n == 0:
24 return '0B'
25 symbols = ('k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
26 prefix = {}
27 for i, s in enumerate(symbols):
28 prefix[s] = 1 << (i+1)*10
29 for s in reversed(symbols):
30 if n >= prefix[s]:
31 value = float(n) / prefix[s]
32 return '%.1f%s' % (value, s)
33
34 def print_(a, b):
35 if sys.stdout.isatty():
36 fmt = '\x1b[1;32m%-17s\x1b[0m %s' %(a, b)
37 else:
38 fmt = '%-15s %s' %(a, b)
39 print fmt
40
41 def run(pid):
42 p = psutil.Process(pid)
43 if p.parent:
44 parent = '(%s)' % p.parent.name
45 else:
46 parent = ''
47 started = datetime.datetime.fromtimestamp(p.create_time).strftime('%Y-%M-%d %H:%M')
48 io = p.get_io_counters()
49 mem = p.get_memory_info()
50 mem = '%s%% (resident=%s, virtual=%s) ' %(round(p.get_memory_percent(), 1),
51 convert_bytes(mem.rss),
52 convert_bytes(mem.vms))
53 cpu_times = p.get_cpu_times()
54 cpu_percent = p.get_cpu_percent(0)
55 children = p.get_children()
56 files = p.get_open_files()
57 threads = p.get_threads()
58 connections = p.get_connections()
59
60 print_('pid', p.pid)
61 print_('name', p.name)
62 print_('exe', p.exe)
63 print_('parent', '%s %s' % (p.ppid, parent))
64 print_('cmdline', ' '.join(p.cmdline))
65 print_('started', started)
66 print_('user', p.username)
67 if os.name == 'posix':
68 print_('uids', 'real=%s, effective=%s, saved=%s' % p.uids)
69 print_('gids', 'real=%s, effective=%s, saved=%s' % p.gids)
70 print_('terminal', p.terminal or '')
71 if hasattr(p, 'getcwd'):
72 print_('cwd', p.getcwd())
73 print_('memory', mem)
74 print_('cpu', '%s%% (user=%s, system=%s)' % (cpu_percent,
75 cpu_times.user,
76 cpu_times.system))
77 print_('status', p.status)
78 print_('niceness', p.nice)
79 print_('num threads', p.get_num_threads())
80 if hasattr(p, 'get_io_counters'):
81 print_('I/O', 'bytes-read=%s, bytes-written=%s' % \
82 (convert_bytes(io.read_bytes),
83 convert_bytes(io.write_bytes)))
84 if children:
85 print_('children', '')
86 for child in children:
87 print_('', 'pid=%s name=%s' % (child.pid, child.name))
88
89 if files:
90 print_('open files', '')
91 for file in files:
92 print_('', 'fd=%s %s ' % (file.fd, file.path))
93
94 if threads:
95 print_('running threads', '')
96 for thread in threads:
97 print_('', 'id=%s, user-time=%s, sys-time=%s' \
98 % (thread.id, thread.user_time, thread.system_time))
99 if connections:
100 print_('open connections', '')
101 for conn in connections:
102 type = 'TCP' if conn.type == socket.SOCK_STREAM else 'UDP'
103 lip, lport = conn.local_address
104 if not conn.remote_address:
105 rip, rport = '*', '*'
106 else:
107 rip, rport = conn.remote_address
108 print_('', '%s:%s -> %s:%s type=%s status=%s' \
109 % (lip, lport, rip, rport, type, conn.status))
110
111 def main(argv=None):
112 if argv is None:
113 argv = sys.argv
114 if len(argv) == 1:
115 sys.exit(run(os.getpid()))
116 elif len(argv) == 2:
117 sys.exit(run(int(argv[1])))
118 else:
119 sys.exit('usage: %s [pid]' % __file__)
120
121 if __name__ == '__main__':
122 sys.exit(main())
OLDNEW
« no previous file with comments | « third_party/psutil/examples/killall.py ('k') | third_party/psutil/psutil/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698