Python,相当于bash命令,用于获取远程进程的环境变量

标签 python macos environment psutil

我当前正在使用 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()提取环境变量的方法,但它仅适用于当前进程或父/子进程(即 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())

关于Python,相当于bash命令,用于获取远程进程的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58972330/

相关文章:

python - Python 查找列表中单词的最长长度

macos - Apache 和 passenger 在 Docker mac 和 ubuntu 上的行为不同

c++ - 在 OSX 上从 x86 读取共享内存到 x64,反之亦然

c++ - 第二次检查后 flock lock 丢失

r - 如何将命名列表的内容加载到全局环境中?

python - 在 wxPython 中使用触摸板手势?

python - Keras - 复制 Conv2D 层

python - 使用 Python Selenium 下载文件

function - erlang 改变一个有趣的环境

r - 何时/如何/何处解释默认参数中的 parent.frame?