2015-04-27 196 views
0

我正在運行Node.js和Socket.io進行在線聊天。 我已經創建了一個文件:Node.js - 啓動時服務器崩潰,手動啓動時不崩潰

/etc/init/example.conf 

它有兩條線:

start on startup 
exec forever start /var/www/example.com/html/server.js //location of server file. 

每當我開始在聊天應用程序文件上傳,它崩潰,但立即重新啓動。

每當我殺死節點進程,並手動啓動它 - 它工作正常。

我也無法從終端獲取任何日誌或任何內容,因爲它是自動啓動的 - 它不會將任何內容打印到終端。

我對Node.js和Linux一般還是一個新手。 Node.js在Express + Jade上運行。

如何確定具體原因?

+0

添加文件日誌記錄 – Transcendence

+0

@Transcendence我剛剛閱讀了有關尾部方法,我能夠將我的終端附加到自動啓動過程。我發現錯誤 – arleitiss

+0

@arleitiss如果你發現你的問題的解決方案,你可以發佈它作爲答案,最好有一些描述你如何計算出來 –

回答

1

我設法解決了我的問題,經過一番搜索,我發現了關於尾部命令。

我的問題有點難以跟蹤,因爲Node.js是一個由autostart啓動的進程,所以當我啓動終端並連接到服務器時,進程只是在後臺運行,基本上我不會得到任何輸出(包括異常消息)。

無論如何,解決方案,爲我工作是:

我輸入

ps aux | grep node //to find PID of node process 

然後我去下面的目錄

cd /proc/[pid of running node service]/fd 

在fd目錄中有幾個對象,你可以得到輸出但如果你想附加和聽服務器輸出包括未捕獲的異常,你需要1. 所以:

tail -f 1 

這樣我就可以導致網站崩潰並看到輸出。