Ubuntu
無法在啟動時啟動 node.js 程序的新貴腳本
我為我的 node.js 程序製作了一個相當簡單的啟動腳本,它應該在啟動時執行:
start on startup stop on shutdown script exec sudo -u max WEBSITES_DIR=/home/max/websites/ /usr/local/bin/node /home/max/websites/server.js 2>&1 >> /var/log/node.log end script
如果我使用:
sudo start my-program
它可以工作,但是當我重新啟動機器時,我收到錯誤消息:
init: my-program main process (325) terminated with status 2
有人知道如何調試這個嗎?
該
startup
事件是在 Upstart 啟動過程中發出的第一個事件。有各種各樣的事情還沒有發生 - 根文件系統仍然會以只讀方式掛載,網路尚未初始化等。我懷疑該作業正在快速退出,因為它的所有依賴項(顯式或隱式)尚未初始化。我會將開始條件更改為類似
start on filesystem and started networking
至少那時您將能夠寫入您的日誌文件。
附帶說明一下,您似乎顛倒了輸出重定向參數-實際上您的意思是
>> /var/log/node.log 2>&1
. using2>&1
的意思是“取目前 fd 1 的任何內容,並使 fd 2 相同”,但您尚未更改 stdout 的內容。