我有一個nodejs應用程序,我想在服務器重啓後自動重啓。我已經創建了一個腳本來永久啓動應用程序,如下所示。nodejs應用程序在重啓後無法正常啓動
#!/bin/sh
export PATH=/usr/bin:$PATH
forever start --command node --minUptime 1000 --spinSleepTime 10000 --sourceDir /etc/csc server.js >> /etc/csc/log.txt 2>&1
我還創建了一個crontab項目重新啓動後運行該腳本:
@reboot /etc/csc/csc-starter.sh
雖然,我不認爲在crontab部分是真正相關的,因爲我會在下面解釋。問題是,雖然nodejs應用程序在重新啓動後確實啓動,但它不會正確響應客戶端請求。例如,被顯示(在瀏覽器中)的URL的調用應導致應用程序的主視圖,在下面的輸出結果:
{
code: "ResourceNotFound",
message: "/"
}
有趣的是,當調用的被觀察到的相同輸出手動啓動腳本。但是,如果我用以下方式運行nodejs應用程序:
node /etc/csc/server.js
它工作得很好。我是Linux的相對新手,你可以放心地假設,我可能並不知道一些在Linux中工作的可接受真理,比如將應用程序放在/ etc下的合理性。
任何想法爲什麼永遠啓動應用程序會改變它的內部行爲?這個應用程序非常簡單。它基於restify並且有幾條REST路線,以及託管靜態內容,但它確實沒什麼特別。
謝謝。
感謝您的快速響應。我添加了更改目錄,一切都很好!我想我已經想了很多關於永遠會爲我做些什麼,特別是因爲它需要一個sourceDir參數。活到老,學到老。 (並且我將該應用程序移至/ opt/csc,感謝該技巧)。 – lje 2014-11-01 21:42:32