如果一个过程在pm2开始没有开始,如何放弃?

时间:2017-02-02 14:07:09

标签: node.js pm2

在Windows上,pm2正在8个进程上启动我的应用程序。

我的应用未启动(由于端口冲突)。

所以pm2一次又一次地重试并且永远,这在linux上很好但是由于所有终端Windows产生并关闭并重新生成,Windows很痛苦。

如果20秒后无法启动应用程序,我该怎么告诉pm2放弃?或者更好的是,如果它在前10秒内失效,我怎么告诉它不要再试一次?

1 个答案:

答案 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秒,则重启被认为是不稳定的(例如,如果发生端口冲突,可能会发生这种情况)。