Python,等同于bash获取远程进程环境变量的命令

Python, equivalent to bash command for getting remote process' environment variables

我目前正在使用 Bash 命令 ps eww 来获取所有进程的环境变量。

例如,如果我运行以下命令:

a=a b=b c=c sleep 1000

ps eww | grep sleep 的输出将是:

23709 s007  S      0:00.00 sleep 1000 a=a b=b c=c TERM_PROGRAM=Apple_Terminal ...

在 python 中,我读到了 psutil 包,它具有 environ() 提取环境变量的方法,但它仅适用于当前进程或 parent/child(即psutil.Process().environ()psutil.Process().Parent().environ() 等..).

也许有一种方法可以为每个生命进程获取环境(根据名称或任何其他属性)?

最好,此选项将作为 python 2.7.1x

的一部分出现在嵌入式软件包中

感谢

Process 的构造函数接受 pid 作为参数:

proc = psutil.Process(pid)
print(proc.name(), proc.environ())

或者您可以使用 process_iter 遍历所有进程并根据需要过滤它们:

for proc in psutil.process_iter():
    if proc.name() == 'sleep':
        print(proc.environ())