2012-03-10 53 views
5

我一直在設置我的服務器最近和今天我不得不重新啓動它...然後我意識到我運行的所有Node應用程序都不是'不再運行。我使用Node Forever模塊來保持應用程序正常運行,但後來我意識到我仍然需要在服務器重新啓動或關閉並再次啓動時啓動它們。無法讓我的Upstart腳本在服務器重新啓動時運行Node.js和Forever

我一直在研究最好的方法來做到這一點,但我只是試圖沒有工作。我在我的Ubuntu Server 10.04LTS遠程服務器上的/etc/init/文件夾中創建了一個Upstart腳本,並嘗試重新啓動,並且它似乎沒有任何操作。當我運行forever list時沒有任何東西被列出。

這裏是我當前的Upstart腳本今天我嘗試:

#/etc/init/myapp.conf 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

script 

    exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js 
end script 

我用永遠在一個節點腳本我覺得它更容易配置它我多麼希望。已經證實,如果我在腳本之外執行腳本,腳本運行得很好,但Upstart腳本本身有問題。它似乎與/etc/init/文件夾中的所有其他Upstart腳本具有相同的權限。作爲一個附加說明,我已經經歷了幾乎所有我可以在StackOverflow找到的答案,並且我已經將目前的腳本放在一起了。

UPDATE:

隨着湯姆的回答,我現在已經嘗試:

#/etc/init/myapp.conf 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js 

但它仍然沒有工作。

所以我不知道爲什麼這是不運行時,我重新啓動我的服務器。請幫忙!

+0

你爲何用永遠呢?我通過Upstart直接運行節點可執行文件,它可以正常工作並重新啓動。 – 2012-06-25 21:08:31

+0

@hiteshjoshi爲什麼?這恐怕不是正確的答案。 – littlejim84 2012-09-24 06:35:12

+0

我有同樣的問題..我使用這個參考https:// www。exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/ – 2013-11-22 10:23:02

回答

0

您是否嘗試過在沒有啓動腳本行的情況下執行此操作?

description "my server" 
author "name" 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

#respawn if you were not using forever 

exec sudo /usr/local/bin/node myapp.forever.js 

來源:http://caolanmcmahon.com/posts/deploying_node_js_with_upstart

+0

Hello @Tom。我嘗試了你的建議,但仍然無法正常工作。我正在閱讀你現在有用的鏈接......男人,這讓我瘋狂! – littlejim84 2012-03-10 13:48:39

2

這不是一件很快樂的設置。 upstart的工作方式是使用啓動命令的進程ID啓動進程運行它。永遠JS的工作原理類似,它可能受Upstart的啓發。

當你試圖用upstart運行forever.js時,在你的upstart腳本中創建的永久進程在啓動後立即退出。 Upstart計劃讓這個流程繼續運行。

當我試圖用暴發戶永遠運行時,我終結了五種不同的永遠的過程,因爲暴發戶認爲它沒有永遠開始,它重試了五次。

相關問題