我一直在nodejs中使用spawn运行可执行文件,现在当我尝试使用spawn运行ubuntu命令(如unset,export等)时,它们似乎无法工作。我猜是因为它正在寻找可执行文件。 我甚至试过exec,这似乎也没有用。有什么提示吗?
我有一个运行ubuntu设备的节点,从UI我需要设置/取消设置代理的env变量,例如http_proxy和no_proxy。除了出口以外我还可以通过节点做什么?应该在系统范围内设置env变量,而不仅仅是当前进程。
答案 0 :(得分:1)
环境变量仅存在于内存中,并且是进程的本地变量。对于任何正在运行的进程,只有进程本身可以更改一组环境变量"属于"到那个过程,但这些变化不会传播到现有的子进程或父进程。
简而言之:您无法更改将应用于系统上所有进程的环境变量(甚至不能从常规shell中更改)。
您只能设置一个环境变量,以便它可用于新创建的子进程(默认情况下,子进程从其父进程继承环境变量集),但是它是关于它的
如果您可以控制如何启动需要这些特定环境变量的进程,那么可以将这些变量的值写入文件(来自Node)并将该文件直接源于另一个文件进程是开始的,但它实际上取决于实际用例是否可用。