如何解决几分钟后带有 NodeJS 的 PM2 崩溃并在循环中重新启动
我有一个 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 中一切正常,但在生产中运行对我来说非常困难。
解决方法
尝试在没有 PM2 的情况下启动您的应用程序,通常这表示节点实例失败,因此执行常规节点 [appname] 将生成您的节点应用程序失败的地方,可能是缺少包。
,阅读消息:正在运行的进程未同步。
您需要pm2 save
。
遵循相应的文档。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。