gpt4 book ai didi

javascript - Dotcloud Nodejs Supervisord.conf 不工作

转载 作者:行者123 更新时间:2023-12-02 19:25:05 25 4
gpt4 key购买 nike

我一直在尝试让主管监控我的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 进程时,它运行得很好,表明主管无法启动 Node 实例。

我的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)

我不确定是什么原因造成的。

最佳答案

调查该问题后,该问题似乎是由于 dotcloud.yml 指定了 approot: app 造成的。在这种情况下,值得注意的是:

  • /home/dotcloud/code 将指向整个代码存储库;
  • /home/dotcloud/current 将指向应用程序根目录(更具体地说,/home/dotcloud/current 将是指向应用程序根目录的符号链接(symbolic link),即 代码/应用程序在这种情况下)。

因此,supervisord.conf 不应包含:

command = node /home/dotcloud/current/app/server.js

但是,相反:

command = node /home/dotcloud/current/server.js

关键在于 Node.js 日志本身,因为 Node.js 提示无法找到 /home/dotcloud/current/app/server.js

关于javascript - Dotcloud Nodejs Supervisord.conf 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12151908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com