前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python查看进程树

python查看进程树

作者头像
py3study
发布2020-01-13 11:11:04
2.6K0
发布2020-01-13 11:11:04
举报
文章被收录于专栏:python3
代码语言:javascript
复制
#!/usr/bin/env python
import shlex
from subprocess import Popen,PIPE

def get_ps():
	cmd = 'ps ax -o pid,ppid,cmd'
	p = Popen(shlex.split(cmd),stdout=PIPE)
	return p.stdout.readlines()[1:]

def split(s):
	s = s.split()
	return s[0],s[1],''.join(s[2:])

def parser_ps(data):
	procs = []
	for l in data:
		pid,ppid,cmd = [i.strip() for i in split(l)]
		procs.append({'pid':int(pid),'ppid':int(ppid),'cmd':cmd})
	return procs

def show(pid,procs,depth=1):
	root = [p for p in procs if p['pid'] == pid][0]
	print '-' * depth,root['pid'],root['ppid'],root['cmd']
	childs = [proc for proc in procs if proc['ppid'] == pid]
	if childs:
		depth += 1
		for c in childs:	
			show(c['pid'],procs,depth)
			
if __name__ == '__main__':
	data = get_ps()
	procs =  parser_ps(data)
	show(1,procs)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档