OS X - 确定给定 PID 的环境?

问题描述 投票:0回答:2

对于给定的进程ID,确定环境变量(例如PATH)的最佳/最直接方法是什么?必须能够查询任何任意环境变量。 PATH 只是第一个例子。

'lsof -a -p $PID -d cwd -F' gets some of it.  

但是,我没有找到使用 lsof 获取给定 PID 的 PATH 的方法。

'ps -Ep $PID' gets some of it.  

但是,再次强调“不全面”。它似乎只回馈了该过程的一部分“环境”。

在许多其他 Linux/UNIX 变体上,您可以查看“/proc//environ”。但是,OS X 显然不使用这种机制。

macos environment pid
2个回答
6
投票

您应该通过

ps -Eww $PID

获取此信息(以及一些额外信息)

您只能看到部分环境的原因是 ps 会修剪输出以适合您的窗口(如果转到标准输出)。在标志中添加“ww”告诉 ps 不要关心窗口大小。


0
投票

我为此创建了 procenv 实用程序

$ procenv 607
LaunchInstanceID=5345193B
XPC_SERVICE_NAME=no.example.ExampleExtension
PATH=/usr/bin:/bin:/usr/sbin:/sbin

您可以自己构建它或使用 Homebrew 安装它:

brew tap henrik242/brew
brew install procenv
© www.soinside.com 2019 - 2024. All rights reserved.