如果进程无法在 pm2 中启动,如何放弃?
How to give up if a process won't start in pm2?
在 Windows,pm2 在 8 个进程上启动我的应用程序。
我的应用没有启动(由于端口冲突)。
所以 pm2 一次又一次地重试,在 linux 上很好,但是 Windows 是一个痛苦,因为所有终端 Windows 都会生成并关闭并重新生成.
如果 20 秒后无法启动应用程序,如何让 pm2 放弃?或者更好的是,如果它在前 10 秒内跌倒,我该如何告诉它不要重试?
经过大量搜索,我在这里找到了文档:
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 次不稳定重启,然后再将进程置于 errored 状态。当处于错误状态时,进程将不再尝试重新启动。如果正常运行时间少于 5 秒,则认为重新启动不稳定(例如,如果发生端口冲突,则可能会发生这种情况)。
在 Windows,pm2 在 8 个进程上启动我的应用程序。
我的应用没有启动(由于端口冲突)。
所以 pm2 一次又一次地重试,在 linux 上很好,但是 Windows 是一个痛苦,因为所有终端 Windows 都会生成并关闭并重新生成.
如果 20 秒后无法启动应用程序,如何让 pm2 放弃?或者更好的是,如果它在前 10 秒内跌倒,我该如何告诉它不要重试?
经过大量搜索,我在这里找到了文档:
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 次不稳定重启,然后再将进程置于 errored 状态。当处于错误状态时,进程将不再尝试重新启动。如果正常运行时间少于 5 秒,则认为重新启动不稳定(例如,如果发生端口冲突,则可能会发生这种情况)。