首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pm2重新加载ecosystem.config.js会导致应用程序重新启动很多次

pm2重新加载ecosystem.config.js会导致应用程序重新启动很多次
EN

Stack Overflow用户
提问于 2018-11-23 14:30:53
回答 1查看 3.5K关注 0票数 0

我在使用ecosystem.config.js文件重新加载应用程序时遇到了问题。当应用程序第一次启动时,它会正确启动,但是当我使用ecosystem.config.js文件刷新/重新加载应用程序时,应用程序会重新启动几次,导致错误。

我的也是Ubuntu,PM2版本是3.2.2,Nodev10.13.0。应用程序使用了Express模块的最新版本(4.16.4)。如果我用"pm2重载app_name“重新加载应用程序,则不会出现此问题。

ecosystem.config.js内容:

代码语言:javascript
复制
module.exports = {
  apps: [{
     script: "./index.js",
     instances: "max",
     exec_mode: "cluster",
     kill_timeout: "2000",
     env: {
       NODE_ENV: "development",
     },
     env_production: {
       NODE_ENV: "production",
     }
  }]
}

当我第一次跑步时:

$ pm2重载ecosystem.config.js PM2应用程序索引未运行,启动..。 启动PM2应用程序索引(2个实例) 节点@ubuntu:/data/$ pm2日志 跟踪所有进程的最后15行(用>-选项 /home/node/.pm2/pm2.log最后15行: PM2 : 2018-11-23T13:14:30: PM2日志: App索引:0开始于-cluster >模式- PM2 : 2018-11-23T13:14:31: PM2日志: App索引:0联机 PM2 : 2018-11-23T13:14:31: PM2日志: App索引:1开始于-cluster >模式- PM2 : 2018-11-23T13:14:31: PM2日志: App索引:1联机

当我按名称(例如: pm2重载app_name)重新加载应用程序时,应用程序将继续运行,但我看到了一些终止进程的超时:

PM2 : 2018-11-23T14:01:02: PM2 log: pid=11296 msg=failed to kill PM2 PM2 2018-11-23T14:01:02: PM2日志: pid 11289在6000 it后仍活着的进程,现在发送给SIGKILL。PM2 : 2018-11-23T14:01:02: PM2 log: pid=11296 msg=failed to kill PM2 PM2 2018-11-23T14:01:02: PM2日志: pid 11296在6000 it后仍活着的进程,现在发送给SIGKILL。PM2 2018-11-23T14:01:02: PM2日志: App名称:索引id:_old_0断开连接的PM2 2018-11-23T14:01:02: PM2日志: App index:_old_通过信号SIGKILL PM2 PM2 +11-23T14:01:02: PM2日志:应用程序名称:索引id:_old_1断开连接PM2 2018-11-23T14:01:02: PM2日志: App index:_old_1通过信号SIGKILL PM2退出2018-11-23T14:01:02: PM2日志: pid=11289 msg=process 23T14 PM2 2018-11-23T14:01:02: PM2日志: pid=11296 msg=process已被杀

但是,即使出现超时,应用程序仍在运行。

当我执行"pm2 reload ecosystem.config.js“时,PM2多次重新启动应用程序,其中一个实例失败:

在Module.load (内部/模块/cjs/loader.js:598:32) 在tryModuleLoad (内部/模块/cjs/loader.js:537:12) 在Function.Module._load (内部/模块/cjs/loader.js:529:3) 在Object处索引0。(/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:48:21) 0\x索引>错误:听EADDRINUSE :3001

我相信这个问题与正确终止Express模块的http连接的超时有关,但我仍在调查这个问题。

EN

回答 1

Stack Overflow用户

发布于 2018-12-13 17:26:34

它已安装在最新的PM2版本上,请更新:

安装npm 2@最新的-g pm2更新

确保您的pm2 delete all,然后再启动您的应用程序,它将工作,然后执行重新加载或重新启动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53448550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档