2013-02-13 68 views
11

我想在永久使用的Amazon EC2實例上運行我的nodejs應用程序。我安裝了nodejs npm,然後運行sudo npm install forever -g
安裝沒有返回任何錯誤,所以我繼續嘗試使用forever start server.js運行我的應用程序,但它不會執行任何操作 - 不輸出任何內容,甚至不會出現錯誤。
我也試過forever --help,只是forever,但沒有他們給我任何迴應...nodejs'永遠'只是沒有做任何事情

當定期運行我的應用程序使用的NodeJS - nodejs init.js那麼它將按預期工作,但我需要運行使用forever這麼當我斷開與服務器的連接時,它不會關閉。

編輯:
nohup sudo nodejs server.js &

,因爲我是有唯一的問題是,的NodeJS收盤時,當我關閉終端會話我EC2服務器,我使用的linux nohup命令這樣解決了這個即使在關閉終端窗口後,這仍然使nodejs在子進程中運行。

感謝您的幫助! :)

+0

是的,但是如果腳本崩潰了,您必須再次手動啓動它。你如何管理? – 2014-10-10 07:02:38

回答

2

我不知道這是否會有所幫助,但作爲替代方案,您可以使用upstart。創建一個這樣的腳本:

#this is the upstart service task. move it to /etc/init/nodeapp.conf 

description "server for Node App" 
author "Neels Grobler" 

chdir /root/servers/nodeapp 
exec node init.js 1>stdout.log 2>stderr.log 
respawn 

並通過輸入start nodeapp運行它。停止輸入stop nodeapp。因此該節點的應用程序在upstart.ubuntu.com

1

在系統啓動等更多信息開始你應該使用forever start server.js不僅僅是forever server.js

+0

試過,但它沒有奏效。我沒有得到任何從'永遠'開始的任何命令的迴應 – gillyb 2013-02-13 19:26:43

+0

你能寫出永遠的'永遠的' – Mustafa 2013-02-13 19:30:49

+0

/usr/local/bin/forever – gillyb 2013-02-13 19:32:30

0

一些猜測,您還可以更改腳本。

  • 如果使用sudo npm install forever -g安裝,則可能需要sudo才能永久運行。
  • 把server.js的完整路徑,當你運行永遠如forever start /home/you/source/server.jssudo forever start /home/you/source/server.js
14

我還沒有從任何forever命令接收任何stdout輸入,此修復程序釘它:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node 

希望能幫助別人。

+3

woot!這爲我做了。希望別人找到答案 – Kyle 2014-10-08 04:30:08

+0

是的。它也適用於我。 – Shane 2015-08-01 08:11:34

+0

謝謝,這對我有幫助。 – 2015-08-31 20:55:54

1

在Windows上,當您運行永遠像:

forever start app.js 

你可以找到生成的日誌文件中的文件系統:

C:\Users\USERNAME\.forever\SomeLogFileHere.txt 

日誌文件再生的獨特identicator每個正在運行的腳本的每個文件。您可以隨時通過以下方式檢查哪個文件屬於哪個進程:

forever list