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

Mah*_*hsa 9 python linux

我想得到进程名称,因为它是python中的pid.python中有没有直接的方法?

Cyp*_*ase 16

psutil封装使这很容易.

import psutil

process = psutil.Process(pid)

process_name = process.name()
Run Code Online (Sandbox Code Playgroud)

  • 这是更好的模块。我试图记住这叫什么。不是procfs。 (2认同)

nis*_*dox 4

如果想查看正在运行的进程,可以使用osmodule 来执行psunix 命令

import os
os.system("ps")
Run Code Online (Sandbox Code Playgroud)

这将列出进程。

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

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

更好的方法是使用subprocessand 管道。

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)
Run Code Online (Sandbox Code Playgroud)