我有一个在pm2上运行的节点服务器,它取决于一些外部服务。
当这些服务器出现故障时,我pm2开始重新启动我的应用程序,但这将继续运行,直到它堵塞我的CPU和服务器上的ram,每分钟重启50次。
有没有办法限制pm2重启次数?当服务器达到某个RAM内存级别时,有一种方法可以重新启动服务器,所以我希望我要求的这个功能存在。
答案 0 :(得分:8)
您可以使用max_restarts
和min_uptime
的组合来限制应用重新连续重启。
在您的应用程序被视为错误并停止重新启动之前,连续不稳定重启次数(小于1秒间隔或通过min_uptime自定义时间)
有关max_restarts
和min_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`
有关更多详细信息,请参见以下链接: