Gibt es eine Möglichkeit für pm2, ein npm-Startskript auszuführen, oder müssen Sie nur ausführen pm2 start app.js
Also in der Entwicklung
npm start
Dann würden Sie in der Produktion mit pm2 so etwas ausführen
pm2 start 'npm start'
Es gibt eine äquivalente Möglichkeit, dies zu tun forever
:
forever start -c "npm start" ./
Antworten:
PM2 unterstützt jetzt npm start:
Verwenden Sie die folgende
--name
Option, um dem PM2-Prozess einen Namen zuzuweisen :quelle
--name "app"
aber es hat es einfach auf npm gesetzt.npm start
in der Prozessdatei setzt?Diejenigen, die ein Konfigurationsskript wie eine
.json
Datei verwenden, um den pm2-Prozess auszuführen, könnennpm start
ein anderes Skript wie dieses verwenden -my-app-pm2.json
Dann einfach -
Bearbeiten - Um den Anwendungsfall zu behandeln, wenn Sie dieses Konfigurationsskript in einem übergeordneten Verzeichnis haben und eine App im Unterverzeichnis starten möchten, verwenden Sie das
cwd
Attribut.Angenommen, unsere App befindet sich im Unterverzeichnis
nested-app
relativ zu dieser Konfigurationsdatei, dann -Mehr Details hier .
quelle
start
befindet sich in einer davon. Siehe diesen Kern: gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673 Wenn ich dies ausführe, weiß es nicht, wohernpm
es laufen soll. Thxcwd
Attribut verwenden. Überprüfen Sie meine bearbeitete Antwort :)sudo pm2 start config.json
Ja. Verwenden Sie
pm2 start npm --no-automation --name {app name} -- run {script name}
. Es klappt. Das--no-automation
Flag ist vorhanden, da PM2 ohne das Flag Ihre App nicht neu startet, wenn es abstürzt.quelle
pm2 --help | grep 'no-autom'
gibt eine Zeile für mich in Version 1.0.2Benutzen
npm run
pm2 start npm --name "{app_name}" -- run {script_name}
quelle
Ich habe unten ein Shell-Skript geschrieben (benannt
start.sh
). Weil meinepackage.json
hatprestart
Option. Also will ich rennennpm start
.Beginnen Sie dann
start.sh
mit pm2.quelle
startOrRestart
Befehls nicht.Ja, wir können, jetzt unterstützt pm2 npm start, --name to species app name.
quelle
Siehe So aktivieren Sie das Clustering:
Was denken Sie?
quelle
-i 0
tun?Ich musste in pm2 ein bestimmtes npm-Skript in meiner App ausführen (für jede Umgebung). In meinem Fall habe ich einen Staging- / Testdienst erstellt
Der Befehl, der für mich funktioniert hat (die Argumente müssen auf diese Weise weitergeleitet werden):
Beispiele:
Hoffe es hat geholfen
quelle
Wenn Sie PM2 nicht global, sondern über Knotenmodule verwenden, müssen Sie festlegen
interpreter: 'none'
, dass die oben genannten Lösungen funktionieren. Verwandte Dokumente hier .In
ecosystem.config.js
:quelle
pm2 start npm --name "custom_pm2_name" -- run prod
Das hat bei mir funktioniert, als die anderen es nicht taten
quelle
Sie müssen hier einen App-Namen wie myapp angeben
pm2 start npm --name "appName" -- start
Sie können es überprüfen durch
pm2 list
Sie können auch Zeit hinzufügen
pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'
oderpm2 restart "id" --time
Sie können Protokolle überprüfen von
pm2 log "id"
oderpm2 log "appName"
um Protokolle für alle App zu erhalten
pm2 logs
quelle
Vergessen Sie nicht den Platz vor dem Start
Der richtige Befehl lautet also:
quelle
Leider scheint pm2 nicht die genaue Funktionalität zu unterstützen, die Sie angefordert haben: https://github.com/Unitech/PM2/issues/1317 .
Die vorgeschlagene Alternative besteht darin, eine
ecosystem.json
Datei zu verwenden. Erste Schritte mit der Bereitstellung, die Setups für Produktions- und Entwicklungsumgebungen enthalten kann. Dies wird jedoch weiterhinnpm start
zum Booten Ihrer App verwendet.quelle
However, this is still using npm start to bootstrap your app.
Können Sie tatsächlich laufennpm start
mitpm2
?kann laufen
Wenn Sie mehrere Server bereitstellen möchten, können Sie dies tun. statt pm2 start npm - start
quelle
Um PM2 mit der
npm start
Methode auszuführen und ihr eine zu gebenname
, führen Sie Folgendes aus:pm2 start npm --name "your_app_name" -- start
Um es auszuführen, indem Sie das Datumsformat für Protokolle übergeben,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- start
quelle
Jetzt können Sie nach verwenden:
Folgen Sie https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
quelle
Unter CentOS 7 funktioniert es einwandfrei
PM2 Version 4.2.1
Nehmen wir zwei Szenarien:
1. npm start //server.js
2. npm run main //main.js
quelle