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

标签 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 错误。我在一个 2 核 linode 上,运行 Plesk Onyx,运行 Centos 7。我错过了什么?

最佳答案

你可以尝试运行它吗

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

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

然后您可以使用以下方式实时查看日志

pm2 logs

关于node.js - PM2 在多个实例中未启动 Node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868159/

相关文章:

node.js - 在 Travis CI 上测试使用 Node.js(Express) 构建的 REST api

javascript - 如何正确地将管理员用户添加到数据库?

node.js - 执行 find() 时在 Mongoose 中调用虚方法

Node.js 从 pm2 获取 SIGINT

javascript - 使用 Ecosystem JS 文件设置 PM2 LogRotate

node.js - 带有 systemd 和传递 Node 参数的 pm2

node.js - pm2 进程自行删除,不再找到进程

node.js - 如何使用 headless 浏览器有效地对 Web 应用程序进行负载测试?

javascript - 如何执行nodejs请求模块?

ubuntu - 如何在 PM2 中运行 golang 脚本?