亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Nodejs - 獲取正在運行的進程的環境變量

Nodejs - 獲取正在運行的進程的環境變量

肥皂起泡泡 2021-11-12 10:56:05
我正在為 vscode 編寫擴展,我需要獲取已經運行的進程的環境變量。但我找不到辦法做到這一點。我知道如何使用 psutil 在 python 中做到這一點:for proc in psutil.process_iter(attrs=['name', 'exe']):    if proc.info['name'].lower() == 'SomeProcess.exe'.lower():        return proc.environ()javascript/nodejs 有類似的東西嗎?
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

您可以使用 child_process 模塊生成終端并執行以下命令 wrt 平臺并獲取變量,解析和使用或編寫本機節點模塊以訪問每個平臺的適當 API 并獲取輸出。

Windows(使用 powershell,2019 是 PID)

(Get-Process -id 2019).StartInfo.EnvironmentVariables

Linux

tr '\0' '\n' < /proc/2019/environ

蘋果電腦

ps eww -o command 2019  | tr ' ' '\n'


查看完整回答
反對 回復 2021-11-12
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

結合@SudhakarRS 的回答:


var child = require('child_process').execFile('powershell', [ 

    '(Get-Process SomeProcess).StartInfo.EnvironmentVariables' 

], function(err, stdout, stderr) { 

    console.log(stdout);

}); 

如果你想調試它,確保你偷看err和stderr。


更換SomeProcess用notepad我的作品,但使用notepad.exe沒有。


在 powershell 上,您可以使用Get-Process [process name].


因此,例如,如果我有 4 個記事本實例正在運行并且 do Get-Process notepad,我會看到:

http://img1.sycdn.imooc.com//618e053200015aed06970103.jpg

您可以獲得(Get-Process notepad).Id返回的進程 ID :

http://img1.sycdn.imooc.com//618e05400001633a00560066.jpg

您可以使用相同的代碼來選擇 ID:


var child = require('child_process').execFile(

    'powershell',

    ['(Get-Process notepad).Id'],

    function(err, stdout, stderr) { 

        var ids = stdout.split("\r\n");

        ids.pop(); //remove the blank string at the end

        console.log(ids);

    }

);

^ 返回:

http://img1.sycdn.imooc.com//618e054c00010b9402970025.jpg

如果您只想獲取帶有名稱的第一個進程,則為:

(Get-Process notepad)[0].StartInfo.EnvironmentVariables

^ 顯然替換notepad為您的進程名稱。


查看完整回答
反對 回復 2021-11-12
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

簡單的方式(從這里開始,您可以使用shelljs 之類的東西,然后運行:

ps faux | grep 'PROCESS_NAME'

然后提取進程ID(我只是在處理正則表達式)然后執行:

cat /proc/THE_PROCESS/environ | tr '\0' '\n'

您將獲得 env vars 作為字符串,如下所示:

THEVAR=1
ANOTHERVAR=2

我想你只是用 '\n' 分割字符串,但我正在檢查!

一旦我弄清楚正則表達式,我就會更新它。**你使用的是 linux/mac 還是 windows?

更新:檢查https://github.com/shelljs/shx跨平臺


查看完整回答
反對 回復 2021-11-12
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號