在Windows上,pm2正在8个进程上启动我的应用程序。
我的应用未启动(由于端口冲突)。
所以pm2一次又一次地重试并且永远,这在linux上很好但是由于所有终端Windows产生并关闭并重新生成,Windows很痛苦。
如果20秒后无法启动应用程序,我该怎么告诉pm2放弃?或者更好的是,如果它在前10秒内失效,我怎么告诉它不要再试一次?
答案 0 :(得分:1)
经过大量搜索,我在这里找到了文档:
http://pm2.keymetrics.io/docs/usage/application-declaration/#control-flow
这详细标记如下:
min_uptime - 要考虑开始的应用的最短正常运行时间
max_restarts - 在您的应用被视为错误并停止重新启动之前连续不稳定重启次数(小于1秒间隔或通过min_uptime自定义时间)
restart_delay - 重新启动崩溃的应用程序之前等待的时间(以毫秒为单位)。默认为0。
我的配置yaml文件(forever.yaml)现在看起来像这样:
# pm2 stop|start|restart|reload|delete pm2.yaml # stop|start|restart|reload|delete all
# example - pm2 start forever.yaml
# pm2 stop forever.yaml --only mock-be
# reload is a no downtime restart
apps:
- name: mock-be
script: ./mbe/mockBEServer.js
instances: 2
exec_mode: cluster
watch: true
# see http://pm2.keymetrics.io/docs/usage/application-declaration/#control-flow
max_restarts: 5 # number of consecutive unstable restarts
min_uptime: 5000 # min uptime of the app to be considered started
restart_delay: 1000 # time to wait before restarting a crashed app
- name: node-mt
script: ./nmt/nodeMTServer.js
instances: 2
exec_mode: cluster
watch: true
max_restarts: 5
min_uptime: 5000
restart_delay: 1000
从......开始。
pm2 start forever.yaml
此配置将在将进程置于错误状态之前尝试连续5次不稳定重启。处于错误状态时,进程将不再尝试重新启动。如果正常运行时间少于5秒,则重启被认为是不稳定的(例如,如果发生端口冲突,可能会发生这种情况)。