如何限制pm2上的自动重启次数?

时间:2017-01-16 02:44:24

标签: node.js pm2

我有一个在pm2上运行的节点服务器,它取决于一些外部服务。

当这些服务器出现故障时,我pm2开始重新启动我的应用程序,但这将继续运行,直到它堵塞我的CPU和服务器上的ram,每分钟重启50次。

有没有办法限制pm2重启次数?当服务器达到某个RAM内存级别时,有一种方法可以重新启动服务器,所以我希望我要求的这个功能存在。

3 个答案:

答案 0 :(得分:8)

您可以使用max_restartsmin_uptime的组合来限制应用重新连续重启。

  

在您的应用程序被视为错误并停止重新启动之前,连续不稳定重启次数(小于1秒间隔或通过min_uptime自定义时间)

有关max_restartsmin_uptime的更多信息,请访问here

答案 1 :(得分:2)

配置文件的选项,如果您有:ecosystem.config.js

{
    watch_delay: 5000,

    exp_backoff_restart_delay: 100,

    restart_delay: 1000,
    max_restarts: 2,
    min_uptime: 5000,
    autorestart: false,
}

否则,给出相同的命令行,如下:

pm2 start app.js --restart-delay=3000
pm2 start app.js --no-autorestart

他们自己知道这个问题,所以请参阅下面的第一个链接:

我的只在 watch_delay: 5000, 之后得到修复,不需要其他任何东西。

答案 2 :(得分:0)

像这样使用PM2生态系统.config.js文件:

module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    merge_logs: true,
    max_restarts": 50, //Here you can define your max restarts
    instances: "max",
    max_memory_restart: "200M",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }]
}

通过以下命令启动服务器:

pm2 start ecosystem.config.js //uses variables from `env`
pm2 start ecosystem.config.js --env production //uses variables from `env_production`

有关更多详细信息,请参见以下链接:

PM2 Runtime | Guide | Ecosystem File