summaryrefslogtreecommitdiffstats
path: root/python/psutil/examples/process_detail.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/psutil/examples/process_detail.py')
m---------python/psutil0
-rwxr-xr-xpython/psutil/examples/process_detail.py167
2 files changed, 0 insertions, 167 deletions
diff --git a/python/psutil b/python/psutil
new file mode 160000
+Subproject a0967043b5819b2edc61d9a12306289d5e7f98c
diff --git a/python/psutil/examples/process_detail.py b/python/psutil/examples/process_detail.py
deleted file mode 100755
index e20371aef..000000000
--- a/python/psutil/examples/process_detail.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-Print detailed information about a process.
-Author: Giampaolo Rodola' <g.rodola@gmail.com>
-
-$ python examples/process_detail.py
-pid 820
-name python
-exe /usr/bin/python2.7
-parent 29613 (bash)
-cmdline python examples/process_detail.py
-started 2014-41-27 03:41
-user giampaolo
-uids real=1000, effective=1000, saved=1000
-gids real=1000, effective=1000, saved=1000
-terminal /dev/pts/17
-cwd /ssd/svn/psutil
-memory 0.1% (resident=10.6M, virtual=58.5M)
-cpu 0.0% (user=0.09, system=0.0)
-status running
-niceness 0
-num threads 1
-I/O bytes-read=0B, bytes-written=0B
-open files
-running threads id=820, user-time=0.09, sys-time=0.0
-"""
-
-import datetime
-import os
-import socket
-import sys
-
-import psutil
-
-
-POSIX = os.name == 'posix'
-
-
-def convert_bytes(n):
- symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
- prefix = {}
- for i, s in enumerate(symbols):
- prefix[s] = 1 << (i + 1) * 10
- for s in reversed(symbols):
- if n >= prefix[s]:
- value = float(n) / prefix[s]
- return '%.1f%s' % (value, s)
- return "%sB" % n
-
-
-def print_(a, b):
- if sys.stdout.isatty() and POSIX:
- fmt = '\x1b[1;32m%-17s\x1b[0m %s' % (a, b)
- else:
- fmt = '%-15s %s' % (a, b)
- # python 2/3 compatibility layer
- sys.stdout.write(fmt + '\n')
- sys.stdout.flush()
-
-
-def run(pid):
- ACCESS_DENIED = ''
- try:
- p = psutil.Process(pid)
- pinfo = p.as_dict(ad_value=ACCESS_DENIED)
- except psutil.NoSuchProcess as err:
- sys.exit(str(err))
-
- try:
- parent = p.parent()
- if parent:
- parent = '(%s)' % parent.name()
- else:
- parent = ''
- except psutil.Error:
- parent = ''
- if pinfo['create_time'] != ACCESS_DENIED:
- started = datetime.datetime.fromtimestamp(
- pinfo['create_time']).strftime('%Y-%m-%d %H:%M')
- else:
- started = ACCESS_DENIED
- io = pinfo.get('io_counters', ACCESS_DENIED)
- if pinfo['memory_info'] != ACCESS_DENIED:
- mem = '%s%% (resident=%s, virtual=%s) ' % (
- round(pinfo['memory_percent'], 1),
- convert_bytes(pinfo['memory_info'].rss),
- convert_bytes(pinfo['memory_info'].vms))
- else:
- mem = ACCESS_DENIED
- children = p.children()
-
- print_('pid', pinfo['pid'])
- print_('name', pinfo['name'])
- print_('exe', pinfo['exe'])
- print_('parent', '%s %s' % (pinfo['ppid'], parent))
- print_('cmdline', ' '.join(pinfo['cmdline']))
- print_('started', started)
- print_('user', pinfo['username'])
- if POSIX and pinfo['uids'] and pinfo['gids']:
- print_('uids', 'real=%s, effective=%s, saved=%s' % pinfo['uids'])
- if POSIX and pinfo['gids']:
- print_('gids', 'real=%s, effective=%s, saved=%s' % pinfo['gids'])
- if POSIX:
- print_('terminal', pinfo['terminal'] or '')
- print_('cwd', pinfo['cwd'])
- print_('memory', mem)
- print_('cpu', '%s%% (user=%s, system=%s)' % (
- pinfo['cpu_percent'],
- getattr(pinfo['cpu_times'], 'user', '?'),
- getattr(pinfo['cpu_times'], 'system', '?')))
- print_('status', pinfo['status'])
- print_('niceness', pinfo['nice'])
- print_('num threads', pinfo['num_threads'])
- if io != ACCESS_DENIED:
- print_('I/O', 'bytes-read=%s, bytes-written=%s' % (
- convert_bytes(io.read_bytes),
- convert_bytes(io.write_bytes)))
- if children:
- print_('children', '')
- for child in children:
- print_('', 'pid=%s name=%s' % (child.pid, child.name()))
-
- if pinfo['open_files'] != ACCESS_DENIED:
- print_('open files', '')
- for file in pinfo['open_files']:
- print_('', 'fd=%s %s ' % (file.fd, file.path))
-
- if pinfo['threads']:
- print_('running threads', '')
- for thread in pinfo['threads']:
- print_('', 'id=%s, user-time=%s, sys-time=%s' % (
- thread.id, thread.user_time, thread.system_time))
- if pinfo['connections'] not in (ACCESS_DENIED, []):
- print_('open connections', '')
- for conn in pinfo['connections']:
- if conn.type == socket.SOCK_STREAM:
- type = 'TCP'
- elif conn.type == socket.SOCK_DGRAM:
- type = 'UDP'
- else:
- type = 'UNIX'
- lip, lport = conn.laddr
- if not conn.raddr:
- rip, rport = '*', '*'
- else:
- rip, rport = conn.raddr
- print_('', '%s:%s -> %s:%s type=%s status=%s' % (
- lip, lport, rip, rport, type, conn.status))
-
-
-def main(argv=None):
- if argv is None:
- argv = sys.argv
- if len(argv) == 1:
- sys.exit(run(os.getpid()))
- elif len(argv) == 2:
- sys.exit(run(int(argv[1])))
- else:
- sys.exit('usage: %s [pid]' % __file__)
-
-if __name__ == '__main__':
- sys.exit(main())