如何使用Python在Linux中通过pid获取进程名称?

时间:2015-08-30 10:09:45

标签: python linux

我希望获得进程名称,因为它是python中的pid。 在python中有没有直接的方法?

2 个答案:

答案 0 :(得分:11)

psutil包让这很容易。

import psutil

process = psutil.Process(pid)

process_name = process.name()

答案 1 :(得分:2)

如果要查看正在运行的进程,可以使用os模块执行ps unix命令

import os
os.system("ps")

这将列出流程。

但是如果您想按ID获取流程名称,可以尝试ps -o cmd= <pid> 所以python代码将是

import os
def get_pname(id):
    return os.system("ps -o cmd= {}".format(id))
print(get_pname(1))

更好的方法是使用subprocess和管道。

import subprocess
def get_pname(id):
    p = subprocess.Popen(["ps -o cmd= {}".format(id)], stdout=subprocess.PIPE, shell=True)
    return str(p.communicate()[0])
name = get_pname(1)
print(name)