Da ich diese Option in der Liste der bereitgestellten Antworten vermisse, möchte ich eine förderfähige Option ab 2020 hinzufügen: Docker oder jede gleichwertig Container Plattform. Neben der Gewährleistung, dass Ihre Anwendung in einer stabilen Umgebung arbeitet, gibt es zusätzliche Sicherheitsvorteile sowie eine verbesserte Portabilität.
Es gibt Docker-Unterstützung für Windows, macOS und die meisten/größeren Linux-Distributionen. Installation von Docker auf einer unterstützten Plattform ist recht einfach und gut dokumentiert. Das Einrichten einer Node.js-Anwendung ist so einfach wie das Einsetzen in einen Container und das Ausführen dieses Containers, wobei sichergestellt wird, dass er nach dem Herunterfahren neu gestartet wird.
Container-Image erstellen
Angenommen, Ihre Anwendung ist verfügbar in /home/ich/meine-app auf diesem Server, erstellen Sie eine Textdatei Dockerdatei im Ordner /home/ich mit ähnlichem Inhalt wie diesem:
FROM node:lts-alpine
COPY /my-app/ /app/
RUN cd /app && npm ci
CMD ["/app/server.js"]
Es wird ein Image für die LTS-Version von Node.js unter Alpine Linux erstellt, die Dateien der Anwendung in das Image kopiert und ausgeführt npm ci
um sicherzustellen, dass die Abhängigkeiten mit dem Laufzeitkontext übereinstimmen.
Eine weitere Datei erstellen .dockerignore im selben Ordner mit dem Inhalt
**/node_modules
Dadurch wird verhindert, dass bestehende Abhängigkeiten Ihres Hostsystems in den Container injiziert werden, da sie dort möglicherweise nicht funktionieren. Die vorgestellte RUN
Befehl in Dockerdatei wird das in Ordnung bringen.
Erstellen Sie das Bild mit einem Befehl wie diesem:
docker build -t myapp-as-a-service /home/me
Le site -t
Option ist die Auswahl des "Namens" des erstellten Container-Images. Dies wird bei den unten aufgeführten laufenden Containern verwendet.
注 Der letzte Parameter ist die Auswahl des Ordners, der die Dockerdatei enthält, und nicht die Dockerdatei selbst. Sie können einen anderen Ordner auswählen, indem Sie die Option -f
.
Start Container
Verwenden Sie diesen Befehl zum Starten des Containers:
docker run -d --restart always -p 80:3000 myapp-as-a-service
Dieser Befehl geht davon aus, dass Ihre Anwendung auf Port 3000 lauscht und Sie möchten, dass sie auf Port 80 Ihres Hosts offengelegt wird.
Dies ist sicherlich ein sehr begrenztes Beispiel, aber ein guter Ausgangspunkt.
3 Stimmen
Ich glaube, er wollte sein lokales System abschalten.
67 Stimmen
Er meinte, dass das Beenden einer ssh-Sitzung die Aufgabe beendet
6 Stimmen
github.com/Unitech/pm2 ist ein sehr gepflegter und sehr stabiler Prozessmanager, probieren Sie ihn aus!
2 Stimmen
Können Sie den Bildschirm ( aperiodic.net/bildschirm/schnell_referenz )
0 Stimmen
Sie können nohup verwenden, suchen Sie in Google, wie man es verwendet.