从编程的角度来看,您应该能够更新process.env传递到正在运行的进程中的变量。
例如,运行:
cmd_line$: MY_VALUE=some_val node ./index.js
Run Code Online (Sandbox Code Playgroud)
与代码:
console.log(process.env.MY_VALUE)
process.env.MY_VALUE = 'some other value'
console.log(process.env.MY_VALUE)
process.env.MY_VALUE = 4
console.log(process.env.MY_VALUE)
Run Code Online (Sandbox Code Playgroud)
终端输出:
some_val
some other value
4
Run Code Online (Sandbox Code Playgroud)
从服务器管理的角度来看,对于已经运行的应用程序,我不知道答案。
可以调试 Node.js 进程并更改全局变量:
在 *nix 上,即使进程未在调试模式下启动,也可以启用调试。在 Windows 上,可以仅调试以node --inspect. 本文详细解释了这两种可能性。
显然,只有当环境变量始终直接用作process.env.FOO.
如果最初使用它们的值,process.env.FOO稍后更改可能不会产生任何影响:
const FOO = process.env.FOO;
...
console.log(FOO); // it doesn't matter whether process.env.FOO was changed at this point
Run Code Online (Sandbox Code Playgroud)
如果您对环境变量进行更改,只有当您通过系统的主属性对话框进行更改时,这些变量才会立即发生,该对话框将转到我的计算机 -> 高级属性 -> 环境变量。
任何已经运行的程序都不会看到更改,除非我们在代码中显式处理它。
其背后的逻辑是,有一个代理发送广播 WM_SETTINGCHANGE 消息并对所有应用程序进行更改,以便通知该更改。
| 归档时间: |
|
| 查看次数: |
11392 次 |
| 最近记录: |