簡體   English   中英

如何將命令的執行導出到upstart腳本

[英]How can I export the execution of a command to an upstart script

我有一個運行nodejs-appupstart腳本,但是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM