[英]How can I export the execution of a command to an upstart script
我有一個運行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
並將其發送到upstart?
筆記:
我還有一個名為$NVM_BIN
的環境變量 ,它輸出nodejs的路徑,但不知道如何將它提供給upstart。
契約中的exec
指示只有一行; 我以分開的線條粘貼在這里以避免滾動
嘗試反引用“`”而不是$()
NODE_NVM_PATH=$(which node)
NODE_NVM_PATH=`which node`
echo ${NODE_NVM_PATH}
你可以讓我們知道它的作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.