首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Linux上通过Python实现的进程列表

Linux上通过Python实现的进程列表
EN

Stack Overflow用户
提问于 2010-04-24 15:44:39
回答 6查看 104.1K关注 0票数 92

如何在Linux上使用Python获取正在运行的进程列表?

EN

回答 6

Stack Overflow用户

发布于 2010-04-24 23:20:04

与破解ps的文本输出相比,IMO查看/proc文件系统要少一些麻烦。

代码语言:javascript
复制
import os
pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]

for pid in pids:
    try:
        print open(os.path.join('/proc', pid, 'cmdline'), 'rb').read().split('\0')
    except IOError: # proc has already terminated
        continue
票数 128
EN

Stack Overflow用户

发布于 2011-06-18 03:26:00

您可以使用psutil作为独立于平台的解决方案!

代码语言:javascript
复制
import psutil
psutil.pids()

[1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224,
268, 1215, 1216, 1220, 1221, 1243, 1244, 1301, 1601, 2237, 2355,
2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245, 
4263, 4282, 4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358, 
4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446, 5167, 5234, 5235, 
5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]
票数 87
EN

Stack Overflow用户

发布于 2010-04-25 03:00:58

允许创建和使用子进程的方法是通过子进程模块。

代码语言:javascript
复制
import subprocess
pl = subprocess.Popen(['ps', '-U', '0'], stdout=subprocess.PIPE).communicate()[0]
print pl

该命令被分解成一个python参数列表,因此它不需要在subprocess.Popen中运行(默认情况下,python不使用任何类型的shell环境,它只是执行它)。因此,我们不能简单地将“ps -U 0”提供给Popen。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2703640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档