这个问题与此有关 Nodejs Child Process with Unix Executable。
但是我找不到一个好的解决方案,多亏了我的声望点,我无法在那里发表评论。
为了解释我的问题,我有一些我自己的可执行文件,我需要从node.js执行。这些可执行文件的路径已在PATH变量中设置。因此,我可以在没有任何路径前缀的情况下运行我的可执行文件。
尽管如此,node.js将 process.env.PATH 设置为以下值:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
我尝试在生成进程之前将路径附加到它:
process.env.PATH = process.env.PATH + ":<path_to_my_executables>"
但是进程退出时有127个Shell代码,这是&#34;命令未找到&#34;如果我没记错的话。
有什么想法吗?
提前谢谢!
答案 0 :(得分:1)
好的,我使用shell脚本完成了它。肯定有一个更好的解决方案。
我首先在shell脚本中将所需的路径导出到我的可执行文件(及其依赖项),然后开始执行。因此shell脚本结构类似于:
export JAVA_HOME=<java_path>
export EXECUTABLES_HOME=<executables_path>
export PATH="$PATH:$JAVA_HOME/bin:$EXECUTABLES_HOME"
<execute_required_executable> <arguments>
如果有人有更好的解决方案,请告诉我!