node.js不尊重$ PATHvariables中的所有path

这个问题与使用Unix可执行文件的Nodejssubprocess相关。

不过,我找不到一个好的解决scheme,并感谢我的名誉点,我无法发表评论。

为了解释我的问题,我有一些我自己的可执行文件,我需要从node.js执行。 这些可执行文件的path已经在PATHvariables中设置。 因此,我可以运行我的可执行文件没有从terminal的任何path前缀。

尽pipe如此,node.js将process.env.PATH设置为以下值:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

我试着在生成过程之前附加它的path:

 process.env.PATH = process.env.PATH + ":<path_to_my_executables>" 

但是如果我正确地记得,这个进程会退出127个“找不到命令”的Shell代码。

有任何想法吗?

先谢谢你!

好的,我使用了一个shell脚本。 肯定有一个更好的解决scheme。

我首先将所需的path导出到我的可执行文件(及其依赖项)中,然后开始执行。 因此,shell脚本结构是这样的:

 export JAVA_HOME=<java_path> export EXECUTABLES_HOME=<executables_path> export PATH="$PATH:$JAVA_HOME/bin:$EXECUTABLES_HOME" <execute_required_executable> <arguments> 

如果有人有更好的解决scheme,请让我知道!