У меня есть скрипт upstart
, который запускает nodejs-app , но 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
выводит путь к nodejs, установленный через nvm
;потому что, если я обновляю или изменяю версию 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
в этом другом файле и отправить его в upstart?
ПРИМЕЧАНИЯ:
У меня также есть переменная окружения , называемая $NVM_BIN
, которая выводит путь к nodejs, но также не знает, как его преобразовать в upstart.
Инструкции exec
на самом деле находятся только в одной строке;Я вставил сюда разделенные строки, чтобы избежать прокрутки