node.js - 如何从 Nodejs 运行 Linux/Ubuntu 命令(不是可执行文件)

标签 node.js ubuntu spawn

一直以来,我一直在 nodejs 中使用 spawn 运行可执行文件,现在当我尝试使用 spawn 运行 ubuntu 命令(如 unset、export 等)时,它们似乎不起作用。我猜是因为它正在寻找可执行文件。
我什至尝试过 exec,这似乎也不起作用。有小费吗?

我有一个 ubuntu 设备运行 Node ,我需要从 UI 设置/取消设置代理的 env 变量,例如http_proxy 和 no_proxy。除了导出还有什么其他方式我可以通过 Node 来做到这一点?环境变量应该在系统范围内设置,而不仅仅是当前进程。

最佳答案

环境变量只存在于内存中并且对于进程来说是本地的。对于任何正在运行的进程,只有进程本身可以更改“属于”该进程的环境变量集,但这些更改不会传播到现有的子进程或父进程。

简而言之:您无法更改将应用​​于系统上所有进程的环境变量(甚至不能从常规 shell 更改)。

您只能设置一个环境变量,使其可用于新创建的子进程(默认情况下,子进程从其父进程继承一组环境变量),但仅此而已。

如果您可以控制需要这些特定环境变量的进程的启动方式,则可以将这些变量的值写入文件(来自 Node)并在其他进程启动之前获取该文件,但这实际上取决于实际用例这是否是一个可用的选项。

关于node.js - 如何从 Nodejs 运行 Linux/Ubuntu 命令(不是可执行文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211263/

相关文章:

node.js - 如何禁用 jade 或 swig 中的缓存

mysqlimport 报告 Error : 29, File '/tmp/newTable.txt' not found (Errcode : 13), when using table: newTable

node.js - Node js os.networkInterfaces() 在通过 AWS 上的 docker 入口点调用时不返回任何结果

javascript - 如何在超时后杀死 spawnSync

javascript - ImageMagick 比较 : exit code 1 when spawned from Node. js,但从命令行运行时退出代码 0

javascript - 多对多关系 - 在查询中填充相关数据 - Keystonejs

node.js - 使用 NodeJs 和 Sequelize 将多边形数据插入 MySQL 表

python - 在 Python 中产生不确定的守护进程

Node.js 堆快照 : neither node-inspector nor nodetime will give me one :(

ubuntu - HPCC 系统 - 无法更改 Dali 的默认端口