2017-05-09 4 views
1

diese beiden jede Arbeit zu meiner app zu starten:PM2 nicht an den Start node.js App in mehreren Instanzen

node app 
pm2 start app.js 

Die folgende funktioniert nicht (App nicht funktioniert, aber PM2 Status zeigt zwei Instanzen online) und nicht Fehler protokollieren:

pm2 start app.js -i 2 --watch -l log/log.log 

auch nicht funktioniert mit der folgenden process.json Datei starten (aber PM2 Status zeigt noch zwei Instanzen online) und melden Sie sich keine Fehler:

{ 
    "apps" : [{ 
    "name"  : "app", 
    "script"  : "./app.js", 
    "instances" : 0, 
    "exec_mode" : "cluster", 
    "watch"  : true, 
    "ignore_watch" : ["tmp","public","images_review"], 
"error_file"  : "./logs/error.log", 
"out_file"  : "./logs/out.log", 
    "log_date_format" : "YYYY-MM-DD HH:mm Z", 
    }] 
} 

Das Starten im Fork-Modus mit der folgenden process.json-Datei funktioniert immer noch nicht, protokolliert jedoch einen Fehler.

{ 
    "apps" : [{ 
    "name"  : "app", 
    "script"  : "./app.js", 
    "instances" : 0, 
    "watch"  : true, 
    "ignore_watch" : ["tmp","public","images_review"], 
"error_file"  : "./logs/error.log", 
"out_file"  : "./logs/out.log", 
    "log_date_format" : "YYYY-MM-DD HH:mm Z", 
    }] 
} 

Der Fehler, den es protokolliert, ist "Fehler: höre EADDRINUSE ::: 3000". Ich habe überprüft und nichts verwendet Port 3000. Ich wechselte auch meine node.js App, um einen anderen Port zu verwenden, und es gibt immer noch einen EADDRINUSE-Fehler für jeden Port, den ich versuche. Ich bin auf einer 2-Kern Linode mit Centos 7 mit Plesk Onyx. Was ist los, dass ich vermisse?

+0

Was 'tut mit ansehen von macht app.js' machen? – robertklep

+0

Es ist eine Express-App. –

+0

Es ist zu erwarten, dass Sie diesen Fehler beim Verwenden des Fork-Modus erhalten: Der Cluster-Modus erlaubt mehreren Prozessen, denselben Port zu verwenden, aber der Gabel-Modus nicht, sodass der zweite Prozess den Fehler erhält, da der erste Prozess bereits abhört auf: 3000. Ich nehme an, dass mit _ "funktioniert nicht" _ Sie meinen, Sie können Port 3000 nach dem Start von PM2 nicht zugreifen? – robertklep

Antwort

0

Können Sie es versuchen laufen mit

pm2 start app.js -i 0 -l log/log.log 

Welche PM2 die maximale Anzahl der Kerne verfügbar

Dann können Sie Ihre Protokolle in Echtzeit

pm2 logs 
+0

Laufen ohne Uhr funktioniert. Ich musste das Logbuch-Verzeichnis zu ignore_watch hinzufügen, sonst würde pm2 aufgrund der Logs ständig neu starten. –

+0

Froh, dass du das umgehen kannst. :). Ich benutze ''watch'' nicht selbst. Ich bevorzuge es, den Prozess neu zu starten, wenn ich mit der Bearbeitung meines Codes fertig bin. – kennasoft

Verwandte Themen