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

PM2 not starting node.js app in multiple instances

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

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",
  }]
}

它记录的错误是 "Error: listen EADDRINUSE :::3000"。我检查了一下,没有任何东西在使用端口 3000。我也将我的 node.js 应用程序切换为使用不同的端口,它仍然为我尝试的每个端口提供 EADDRINUSE 错误。我在 Centos 7 运行 Plesk Onyx 的 2 核 linode 上。我错过了什么?

你能用

试试运行吗
pm2 start app.js -i 0 -l log/log.log

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

然后您可以使用

实时查看您的日志
pm2 logs

PM2 版本 以某种方式解决了它。

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

虽然同意@robertklep 的评论。