我一直在試圖讓我的nodejs服務器進程受到主管的監視,但是我遇到了使supervisord.conf工作的問題。當我部署,我收到以下錯誤:Dotcloud nodejs supervisord.conf不起作用
WARNING: The service crashed at startup or is listening to the wrong port. It failed to respond on port "node" (42801) within 30 seconds. Please check the application logs.
然而,當我通過SSH進入dotcloud服務器和手動啓動該進程的NodeJS,它運行得很好,這表明主管未能啓動的節點實例。
我supervisord.conf看起來是這樣的:
[program:node]
command = node /home/dotcloud/current/app/server.js
autostart=true
autorestart=true
而且我的目錄結構如下:
.dotcloudignore
dotcloud.yml
.gitignore
app/
app/package.json
app/server.js
app/supervisord.conf
在這一點上,我看不出有什麼我做錯了,因爲這看起來與here概述的目錄結構相同,所以我對於解決方案有些遺憾。有任何想法嗎?
編輯:
嘗試過了supervisorctl status
我得到如下:
node FATAL Exited too quickly (process log may have details)
我發現,在/ var /日誌/主管,我收到以下錯誤信息:
module.js:337
throw new Error("Cannot find module '" + request + "'");
^
Error: Cannot find module '/home/dotcloud/current/app/server.js'
at Function._resolveFilename (module.js:337:11)
at Function._load (module.js:279:25)
at Array.0 (module.js:484:10)
at EventEmitter._tickCallback (node.js:190:38)
我不確定是什麼原因造成的。
服務器正在偵聽哪個端口? – jpetazzo
它正在HTTP8080上偵聽,還有42801上的TCP,這是我通過environment.json文件分配的。服務器運行良好,如果我手動啓動它通過sshing進入dotcloud虛擬機。這個問題是與supervisord不自動啓動並重新啓動節點服務器 – blackbourna
你爲什麼認爲它來自Supervisor?你是否嘗試過「supervisorctl status」來看看它說了些什麼? – jpetazzo