python查看进程树,,#!/usr/bin


#!/usr/bin/envpythonimportshlexfromsubprocessimportPopen,PIPEdefget_ps():cmd=‘psax-opid,ppid,cmd‘p=Popen(shlex.split(cmd),stdout=PIPE)returnp.stdout.readlines()[1:]defsplit(s):s=s.split()returns[0],s[1],‘‘.join(s[2:])defparser_ps(data):procs=[]forlindata:pid,ppid,cmd=[i.strip()foriinsplit(l)]procs.append({‘pid‘:int(pid),‘ppid‘:int(ppid),‘cmd‘:cmd})returnprocsdefshow(pid,procs,depth=1):root=[pforpinprocsifp[‘pid‘]==pid][0]print‘-‘*depth,root[‘pid‘],root[‘ppid‘],root[‘cmd‘]childs=[procforprocinprocsifproc[‘ppid‘]==pid]ifchilds:depth+=1forcinchilds:show(c[‘pid‘],procs,depth)if__name__==‘__main__‘:data=get_ps()procs=parser_ps(data)show(1,procs)


本文出自 “muzinan的技术博客” 博客,谢绝转载!

python查看进程树

评论关闭