我一直在尝试让主管监视我的 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
在这一点上,我看不出我做错了什么,因为这似乎与此处概述的目录结构相同,所以我对解决方案是什么感到茫然。有任何想法吗?
编辑:
尝试后supervisorctl status
我得到以下信息:
node FATAL Exited too quickly (process log may have details)
我发现在 /var/log/supervisor 中,我收到以下错误消息:
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)
我不确定是什么原因造成的。