2017-02-02 4 views
0

Unter Windows startet PM2 meine App mit 8 Prozessen.Wie gebe ich auf, wenn ein Prozess in PM2 nicht startet?

Meine App startet nicht (aufgrund eines Portkonflikts).

Also pm2 wiederholt immer wieder und für immer, was auf Linux ist in Ordnung, aber Windows ist ein Schmerz wegen all der Terminal-Windows, die spawn und schließen und erneut spawnen.

Wie sage ich pm2, um aufzugeben, wenn die App nach 20 Sekunden nicht gestartet werden kann? Oder noch besser, wie sage ich es, es nicht erneut zu versuchen, wenn es innerhalb der ersten 10 Sekunden umfällt?

+0

Was ist mit 'pm2 start app.js --no-autorestart'? – ZwoRmi

+0

thx für die idee, ich vergaß zu erwähnen, ich benutze watch: true ... in diesem kontext --no-autorestart macht keinen sinn ... ich gab es trotzdem, aber es war chaotisch! – danday74

Antwort

1

Nach einer großen Suche fand ich die Dokumentation hier:

http://pm2.keymetrics.io/docs/usage/application-declaration/#control-flow

Diese Details Fahnen wie:

min_uptime - min Verfügbarkeit der App als

max_restarts gestartet werden - Anzahl der aufeinanderfolgenden instabilen Neustarts (weniger als 1 Sek. Intervall oder benutzerdefinierte Zeit über min_uptime), bevor Ihre App als fehlerhaft betrachtet wird und nicht mehr neu gestartet wird

restart_delay - Wartezeit bis zum Neustart einer abgestürzten App (in Millisekunden). standardmäßig auf 0.

meine Config yaml Datei (forever.yaml) sieht nun wie folgt aus:

# 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 

Start mit ..

pm2 start forever.yaml 

Diese Konfiguration 5 aufeinander folgenden instabil Neustarts versucht, vor der Inbetriebnahme der Prozess in einem fehlerhaften Zustand. In einem fehlerhaften Zustand versucht ein Prozess nicht mehr neu zu starten. Ein Neustart wird als instabil betrachtet, wenn die Betriebszeit weniger als 5 Sekunden beträgt (dies kann beispielsweise bei einem Portkonflikt vorkommen).

+0

es funktioniert nicht für mich 2.9.3 – Adiii

+0

mit pm2 v 2.9.3 – Adiii

Verwandte Themen