PM2 未在多个实例中启动node.js 应用程序

问题描述 投票:0回答:3

这两者都可以启动我的应用程序:

node app
pm2 start app.js

以下内容不起作用(应用程序不工作,但 PM2 状态显示 2 个实例在线)并且不记录任何错误:

pm2 start app.js -i 2 --watch -l log/log.log

使用以下 process.json 文件启动也不起作用(但 PM2 状态仍然显示 2 个实例在线)并且不记录任何错误:

{
  "apps" : [{
    "name"        : "app",
    "script"      : "./app.js",
    "instances"   : 0,
    "exec_mode"   : "cluster",
    "watch"       : true,
    "ignore_watch"  : ["tmp","public","images_review"],
"error_file"      : "./logs/error.log",
"out_file"        : "./logs/out.log",
    "log_date_format"  : "YYYY-MM-DD HH:mm Z",
  }]
}

使用以下 process.json 文件以 fork 模式启动仍然不起作用,但会记录错误。

{
  "apps" : [{
    "name"        : "app",
    "script"      : "./app.js",
    "instances"   : 0,
    "watch"       : true,
    "ignore_watch"  : ["tmp","public","images_review"],
"error_file"      : "./logs/error.log",
"out_file"        : "./logs/out.log",
    "log_date_format"  : "YYYY-MM-DD HH:mm Z",
  }]
}

它记录的错误是“错误:监听 EADDRINUSE :::3000”。我检查过,没有任何东西使用端口 3000。我还切换了我的 Node.js 应用程序以使用不同的端口,但对于我尝试的每个端口,它仍然给出 EADDRINUSE 错误。我在一个 2 核 linode 上,运行 Plesk Onyx,运行 Centos 7。我错过了什么?

node.js pm2
3个回答
3
投票

你可以尝试运行它吗

pm2 start app.js -i 0 -l log/log.log

这使得 pm2 使用最大可用核心数

然后您可以使用

实时查看您的日志
pm2 logs

0
投票

以某种方式用PM2版本解决了这个问题。

问题:在3.0.3版本中,它在集群模式下不起作用。
但是,当将PM2版本降级到3.0.0时,它可以工作。

同意@robertklep 的评论。


0
投票

尝试使用“pm2删除全部”删除默认进程对我有用!!

the default process that needs to be deleted

© www.soinside.com 2019 - 2024. All rights reserved.