【发布时间】:2023-03-23 03:25:01
【问题描述】:
我一直试图让主管监控我的 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/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)
我不确定是什么原因造成的。
【问题讨论】:
-
你的服务器在监听哪个端口?
-
它正在侦听 http 8080 和 TCP 42801,我是由 environment.json 文件分配的。如果我通过 ssh 到 dotcloud VM 手动启动它,服务器运行良好。问题在于 supervisord 没有自动启动和重新启动节点服务器
-
为什么你认为它来自Supervisor?你试过“supervisorctl status”看看它说了什么吗?
-
感谢您的建议,我已在编辑中将详细信息添加到我的问题中。
标签: javascript node.js deployment dotcloud supervisord