Nodejs - 获取正在运行的进程的环境变量

psc*_*ury 4 javascript node.js typescript vscode-extensions

我正在为 vscode 编写扩展,我需要获取已经运行的进程的环境变量。但我找不到办法做到这一点。

我知道如何使用 psutil 在 python 中做到这一点:

for proc in psutil.process_iter(attrs=['name', 'exe']):
    if proc.info['name'].lower() == 'SomeProcess.exe'.lower():
        return proc.environ()
Run Code Online (Sandbox Code Playgroud)

javascript/nodejs 有类似的东西吗?

Sud*_*amy 5

您可以使用 child_process 模块生成终端并执行以下命令 wrt 平台并获取变量,解析和使用或编写本机节点模块以访问每个平台的适当 API 并获取输出。

Windows(使用 powershell,2019 是 PID)

(Get-Process -id 2019).StartInfo.EnvironmentVariables
Run Code Online (Sandbox Code Playgroud)

Linux

tr '\0' '\n' < /proc/2019/environ
Run Code Online (Sandbox Code Playgroud)

苹果电脑

ps eww -o command 2019  | tr ' ' '\n'
Run Code Online (Sandbox Code Playgroud)

感谢https://serverfault.com/a/66366 & /sf/answers/1973562741/ & https://apple.stackexchange.com/a/254253 & https://stackoverflow.com/ a/11547409/12167785 & /sf/answers/1313588741/


psc*_*ury 0

在 javascript/nodejs 中没有内置的方法可以做到这一点。如果您确实需要这样做,那么最好的方法是在终端中运行命令,然后解析输出以构造您需要的对象。