PM2在多个实例中没有启动node.js app

时间:2017-05-09 11:06:07

标签: node.js pm2

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

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错误。我正在使用Centos 7运行Plesk Onyx的2核心linode。我失踪了怎么回事?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用

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

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

然后您可以使用

实时查看日志
pm2 logs

答案 1 :(得分:0)

以某种方式解决了 PM2版本

问题:对于版本3.0.3,它无法在群集模式下运行。
但是,当 将PM2版本降级为3.0.0 ,它起作用了。

尽管同意@robertklep的评论。