summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2017-04-26 21:30:59 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2017-04-26 21:30:59 +0200
commit888eebfd4fecfaf936838a2055496485e2af8b65 (patch)
tree2769b30da7c960cae46e79b3584cce03e7eaa1f3 /scripts
parentbde13c410bd0e266d49ad1e24ae3b78dba571e29 (diff)
downloadpsutil-888eebfd4fecfaf936838a2055496485e2af8b65.tar.gz
#1025: take advantage of process_iter(attrs) in scripts
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/cpu_distribution.py10
-rwxr-xr-xscripts/netstat.py7
-rwxr-xr-xscripts/pidof.py25
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