【发布时间】:2019-10-05 13:51:50
【问题描述】:
我有一个运行 nodejs-app 的 upstart 脚本,但 Node.js 与 nvm 一起安装。我从另一个文件中为upstart 提供了一些变量,我的script 部分如下所示:
script
. /etc/default/nodejs
exec start-stop-daemon --start --make-pidfile --pidfile /var/run/app.pid
--chdir /home/node-apps/ --chuid root:root
--exec $NODE_NVM_PATH app.js >> /var/log/node/app.log 2>&1
end script
在/etc/default/nodejs (chmod 744) 我有这个:
NODE_NVM_PATH=$(which node)
which node 输出通过nvm 安装的nodejs 路径;因为如果我更新或更改Node.js 版本,我不想编辑此文件中的新路径。
但是使用这种方法,不工作,我的app.js 没有运行。我也试过export NODE_NVM_PATH=$(which node),结果一样。
但如果我说:
NODE_NVM_PATH="/root/.nvm/versions/node/v12.2.0/bin/node"
在/etc/default/nodejs 内部一切正常。
所以我的问题是:
如何在这个其他文件中执行 which node 并将其提供给新贵?
注意事项:
我还有一个名为
$NVM_BIN的环境变量,它输出nodejs 的路径,但也不知道如何将它提供给新贵。exec指令实际上只有一行;我在这里以分隔行粘贴以避免滚动
【问题讨论】:
标签: node.js linux bash environment-variables upstart