我一直在试图让我的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