Wie kann man eine Node.js App unter Linux im Hintergrund ausführen?

Melden
  1. Ausführen der Node.js App mit dem "nohup" Befehl
  2. Verwendung von Terminal-Multiplexern wie "screen" oder "tmux"
  3. Node.js Prozesse mit Prozessmanagern wie "pm2" verwalten
  4. Zusammenfassung

Node.js Anwendungen werden häufig auf Servern betrieben, bei denen es sinnvoll ist, die App dauerhaft und stabil laufen zu lassen, ohne dass sie durch das Schließen des Terminals oder ähnliches beendet wird. Das Ausführen einer Node.js App im Hintergrund unter Linux ist daher ein wichtiger Schritt, um die Anwendung dauerhaft verfügbar zu halten. Im Folgenden werden verschiedene Methoden erläutert, mit denen man eine Node.js Anwendung in den Hintergrund bringt und sicherstellt, dass sie auch nach dem Schließen der Terminal-Sitzung weiterläuft.

Ausführen der Node.js App mit dem "nohup" Befehl

Eine einfache Möglichkeit, eine Node.js Anwendung im Hintergrund zu starten, ist die Verwendung von nohup, welches den Prozess vor dem Beenden schützt, wenn das Terminal geschlossen wird. Dabei wird der Prozess im Hintergrund gestartet und die Ausgabe in eine Logdatei geschrieben. Die Eingabe kann dabei vom Terminal getrennt werden, damit der Node-Prozess weiterhin läuft, selbst wenn man sich abmeldet.

Das Kommando sieht beispielsweise so aus: nohup node app.js &. Das kaufmännische Und (&) sorgt dafür, dass der Prozess im Hintergrund ausgeführt wird. Die Standardausgabe und Fehler werden dabei in der Datei nohup.out gespeichert.

Verwendung von Terminal-Multiplexern wie "screen" oder "tmux"

Eine weitere beliebte Möglichkeit, Node.js Anwendungen im Hintergrund laufen zu lassen, ist die Nutzung von Terminal-Multiplexern wie screen oder tmux. Diese Tools erlauben es, eine Session zu starten, die im Hintergrund weiterläuft, auch wenn man sich vom Server abmeldet.

Man startet eine neue Session mit screen oder tmux, führt dort seine Node.js App aus und trennt dann die Session. Die Anwendung bleibt dadurch aktiv und kann später wieder verbunden und überwacht werden. Das ist besonders praktisch für die Entwicklung und das Debugging.

Node.js Prozesse mit Prozessmanagern wie "pm2" verwalten

Für produktive Umgebungen empfiehlt sich die Nutzung von spezialisierten Prozessmanagern wie pm2, die gezielt entwickelt wurden, um Node.js Anwendungen stabil zu betreiben. pm2 ermöglicht nicht nur das Starten von Prozessen im Hintergrund, sondern bietet auch automatische Neustarts bei Abstürzen, Logmanagement und einfache Überwachung.

Nach der Installation von pm2 via npm install -g pm2 kann die Anwendung mit pm2 start app.js gestartet werden. Danach läuft die App als Daemon im Hintergrund und kann mit pm2 list oder pm2 logs überwacht werden.

Zusammenfassung

Es gibt verschiedene Wege, eine Node.js Anwendung unter Linux im Hintergrund auszuführen. Während nohup und Terminal-Multiplexer einfache Methoden bereitstellen, ist die Verwendung von Prozessmanagern wie pm2 für produktiven Betrieb besonders zu empfehlen. Je nach Anforderung an Stabilität, Monitoring und Wartbarkeit kann die passende Methode gewählt werden, um die Node.js App dauerhaft und zuverlässig laufen zu lassen.

0