【问题标题】:PM2 with NodeJS crash after few minutes and restart in loop几分钟后,带有 NodeJS 的 PM2 崩溃并循环重启
【发布时间】:2021-04-22 20:45:48
【问题描述】:

我有一个 NodeJs+Express+Mongodb 应用程序,我正在尝试在我的 vps 上运行它。 我愿意:

pm2 start server

[PM2] Applying action restartProcessId on app [server](ids: [ 1 ])
[PM2] [server](1) ✓
[PM2] Process successfully started
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 1  │ server             │ fork     │ 991  │ online    │ 0%       │ 13.8mb   │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
Current process list running is not in sync with saved list. App app differs. Type 'pm2 save' to synchronize.

一切正常。但几分钟后 pm2 出现错误并每 1 秒循环重启一次:

2021-04-21T09:39:19: PM2 log: ===============================================================================
2021-04-21T09:39:19: PM2 log: --- New PM2 Daemon started ----------------------------------------------------
2021-04-21T09:39:19: PM2 log: Time                 : Wed Apr 21 2021 09:39:19 GMT+0000 (Coordinated Universal Time)
2021-04-21T09:39:19: PM2 log: PM2 version          : 4.5.5
2021-04-21T09:39:19: PM2 log: Node.js version      : 15.12.0
2021-04-21T09:39:19: PM2 log: Current arch         : x64
2021-04-21T09:39:19: PM2 log: PM2 home             : /home/debian/.pm2
2021-04-21T09:39:19: PM2 log: PM2 PID file         : /home/debian/.pm2/pm2.pid
2021-04-21T09:39:19: PM2 log: RPC socket file      : /home/debian/.pm2/rpc.sock
2021-04-21T09:39:19: PM2 log: BUS socket file      : /home/debian/.pm2/pub.sock
2021-04-21T09:39:19: PM2 log: Application log path : /home/debian/.pm2/logs
2021-04-21T09:39:19: PM2 log: Worker Interval      : 30000
2021-04-21T09:39:19: PM2 log: Process dump file    : /home/debian/.pm2/dump.pm2
2021-04-21T09:39:19: PM2 log: Concurrent actions   : 2
2021-04-21T09:39:19: PM2 log: SIGTERM timeout      : 1600
2021-04-21T09:39:19: PM2 log: ===============================================================================
2021-04-21T09:39:32: PM2 error: 2 : id unknown
2021-04-21T09:39:32: PM2 error: Trace: Error: 2 : id unknown
    at Object.God.logAndGenerateError (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/Methods.js:39:12)
    at Object.God.stopProcessId (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/ActionMethods.js:306:21)
    at God.deleteProcessId (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/ActionMethods.js:383:9)
    at Server.onmessage (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/node_modules/pm2-axon-rpc/lib/server.js:104:6)
    at RepSocket.emit (node:events:369:20)
    at RepSocket.emit (node:domain:470:12)
    at Parser.<anonymous> (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/node_modules/pm2-axon/lib/sockets/rep.js:51:15)
    at Parser.emit (node:events:369:20)
    at Parser.emit (node:domain:532:15)
    at Parser._write (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/node_modules/amp/lib/stream.js:91:16)
    at Object.God.logAndGenerateError (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/Methods.js:34:15)
    at /home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/ActionMethods.js:384:30
    at Object.God.stopProcessId (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/ActionMethods.js:306:14)
    at God.deleteProcessId (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/lib/God/ActionMethods.js:383:9)
    at Server.onmessage (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/node_modules/pm2-axon-rpc/lib/server.js:104:6)
    at RepSocket.emit (node:events:369:20)
    at RepSocket.emit (node:domain:470:12)
    at Parser.<anonymous> (/home/debian/.nvm/versions/node/v15.12.0/lib/node_modules/pm2/node_modules/pm2-axon/lib/sockets/rep.js:51:15)
    at Parser.emit (node:events:369:20)
    at Parser.emit (node:domain:532:15)
2021-04-21T09:39:49: PM2 log: PM2 successfully stopped
2021-04-21T09:39:57: PM2 log: ===============================================================================
2021-04-21T09:39:57: PM2 log: --- New PM2 Daemon started ----------------------------------------------------
2021-04-21T09:39:57: PM2 log: Time                 : Wed Apr 21 2021 09:39:57 GMT+0000 (Coordinated Universal Time)
2021-04-21T09:39:57: PM2 log: PM2 version          : 4.5.5
2021-04-21T09:39:57: PM2 log: Node.js version      : 15.12.0
2021-04-21T09:39:57: PM2 log: Current arch         : x64
2021-04-21T09:39:57: PM2 log: PM2 home             : /home/debian/.pm2
2021-04-21T09:39:57: PM2 log: PM2 PID file         : /home/debian/.pm2/pm2.pid
2021-04-21T09:39:57: PM2 log: RPC socket file      : /home/debian/.pm2/rpc.sock
2021-04-21T09:39:57: PM2 log: BUS socket file      : /home/debian/.pm2/pub.sock
2021-04-21T09:39:57: PM2 log: Application log path : /home/debian/.pm2/logs
2021-04-21T09:39:57: PM2 log: Worker Interval      : 30000
2021-04-21T09:39:57: PM2 log: Process dump file    : /home/debian/.pm2/dump.pm2
2021-04-21T09:39:57: PM2 log: Concurrent actions   : 2
2021-04-21T09:39:57: PM2 log: SIGTERM timeout      : 1600
2021-04-21T09:39:57: PM2 log: ===============================================================================
2021-04-21T10:07:24: PM2 log: App [app:0] starting in -fork mode-
2021-04-21T10:07:24: PM2 log: App [app:0] online
2021-04-21T10:07:25: PM2 log: App [app:0] exited with code [1] via signal [SIGINT]
2021-04-21T10:07:25: PM2 log: App [app:0] starting in -fork mode-
2021-04-21T10:07:25: PM2 log: App [app:0] online
2021-04-21T10:07:26: PM2 log: App [app:0] exited with code [1] via signal [SIGINT]
2021-04-21T10:07:26: PM2 log: App [app:0] starting in -fork mode-
2021-04-21T10:07:26: PM2 log: App [app:0] online
2021-04-21T10:07:26: PM2 log: App [app:0] exited with code [1] via signal [SIGINT]
2021-04-21T10:07:26: PM2 log: App [app:0] starting in -fork mode-
2021-04-21T10:07:26: PM2 log: App [app:0] online

// infinite loop here

2021-04-21T10:07:27: PM2 log: App [app:0] exited with code [1] via signal [SIGINT]
2021-04-21T10:07:27: PM2 log: App [app:0] starting in -fork mode-
2021-04-21T10:07:27: PM2 log: App [app:0] online

有人可以帮助我了解问题所在吗?在 localhost 中一切正常,但在生产环境中运行对我来说非常困难。

【问题讨论】:

    标签: node.js vps pm2


    【解决方案1】:

    尝试在没有 PM2 的情况下启动您的应用,这通常表明节点实例失败,因此执行常规节点 [appname] 将生成节点应用失败的位置,可能是缺少包。

    【讨论】:

      【解决方案2】:

      阅读消息:正在运行的进程没有同步。

      你需要pm2 save

      遵循相应的文档。

      【讨论】:

        【解决方案3】:

        这个怎么样?

        pm2 kill
        rm -rf ~/.pm2
        

        found pm2 github

        【讨论】:

          猜你喜欢
          • 2015-03-05
          • 1970-01-01
          • 2021-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多