diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2017-04-26 21:30:59 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2017-04-26 21:30:59 +0200 |
commit | 888eebfd4fecfaf936838a2055496485e2af8b65 (patch) | |
tree | 2769b30da7c960cae46e79b3584cce03e7eaa1f3 /scripts | |
parent | bde13c410bd0e266d49ad1e24ae3b78dba571e29 (diff) | |
download | psutil-888eebfd4fecfaf936838a2055496485e2af8b65.tar.gz |
#1025: take advantage of process_iter(attrs) in scripts
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/cpu_distribution.py | 10 | ||||
-rwxr-xr-x | scripts/netstat.py | 7 | ||||
-rwxr-xr-x | scripts/pidof.py | 25 |
3 files changed, 9 insertions, 33 deletions
diff --git a/scripts/cpu_distribution.py b/scripts/cpu_distribution.py index 31cdbb86..a9f76b4e 100755 --- a/scripts/cpu_distribution.py +++ b/scripts/cpu_distribution.py @@ -74,14 +74,8 @@ def main(): # processes procs = collections.defaultdict(list) - for p in psutil.process_iter(): - try: - name = p.name()[:5] - cpunum = p.cpu_num() - except psutil.Error: - continue - else: - procs[cpunum].append(name) + for p in psutil.process_iter(attrs=['name', 'cpu_num']): + procs[p.info['cpu_num']].append(p.info['name'][:5]) end_marker = [[] for x in range(total)] while True: diff --git a/scripts/netstat.py b/scripts/netstat.py index 1426cd76..490b429f 100755 --- a/scripts/netstat.py +++ b/scripts/netstat.py @@ -41,11 +41,8 @@ def main(): "Proto", "Local address", "Remote address", "Status", "PID", "Program name")) proc_names = {} - for p in psutil.process_iter(): - try: - proc_names[p.pid] = p.name() - except psutil.Error: - pass + for p in psutil.process_iter(attrs=['pid', 'name']): + proc_names[p.info['pid']] = p.info['name'] for c in psutil.net_connections(kind='inet'): laddr = "%s:%s" % (c.laddr) raddr = "" diff --git a/scripts/pidof.py b/scripts/pidof.py index 1c23900f..bcb8a2e6 100755 --- a/scripts/pidof.py +++ b/scripts/pidof.py @@ -18,26 +18,11 @@ import sys def pidof(pgname): pids = [] - for proc in psutil.process_iter(): - with proc.oneshot(): - # search for matches in the process name and cmdline - try: - name = proc.name() - except psutil.Error: - pass - else: - if name == pgname: - pids.append(str(proc.pid)) - continue - - try: - cmdline = proc.cmdline() - except psutil.Error: - pass - else: - if cmdline and cmdline[0] == pgname: - pids.append(str(proc.pid)) - + for proc in psutil.process_iter(attrs=['name', 'cmdline']): + # search for matches in the process name and cmdline + if proc.info['name'] == pgname or \ + proc.info['cmdline'] and proc.info['cmdline'][0] == pgname: + pids.append(str(proc.pid)) return pids |