PM2 – Der Prozess-Manager für Node.js-Anwendungen

Das offizielle Logo von PM2

Das offizielle Logo von PM2

Wer Node.js auf einem eigenen Server einsetzt, hat zum Verwalten der damit betriebenen Anwendungen bisher wahrscheinlich den Prozess-Manager namens Forever verwendet. Jetzt gibt es allerdings eine deutlich funktionsreichere Alternative namens PM2. Worum es sich dabei handelt und worin genau die Vorteile liegen erkläre ich in diesem Artikel.

Wie Forever auch, ist PM2 ein Prozess-Manager für Node.js-Anwendungen mit dem sich die Anwendungen starten, stoppen und neustartenlassen. Falls eine Anwendung aufgrund eines Fehlers unerwartet beendet wird, so wird sie automatisch wieder erneut gestartet.

PM2 kann unter Windows, Mac OS X und natürlich auch unter Linux-basierten Betriebsystemen eingesetzt werden. Neben Node.js selbst ist der Prozess-Manager auch mit dem Node.js-Fork io.js kompatibel, und kann auch mit zu JavaScript kompilieren Sprachen wie LiveScript oder CoffeeScript verwendet werden.

Features von PM2 #

Die Aktivitäts-Überwachung von PM2

Die Aktivitäts-Überwachung von PM2

Neben dem einfachen Starten und Beenden von Node.js-Anwendungen im produktiven Einsatz, bietet PM2 noch viele weitere hilfreiche Features.

So lassen sich die CPU- und Arbeitsspeicher-Nutzung der einzelnen Anwendungen übersichtlich überwachen, und Log-Ausgaben der Konsole werden pro Anwendung automatisch in eine dafür angelegte Datei geschrieben und lassen sich bei Bedarf ohne weiteres in Echtzeit einsehen.

Cluster-Modus #

PM2 kommt außerdem mit einem sogenannten Cluster-Modus, mit Hilfe dessen es möglich ist, die Last der Anwendung auf mehrere CPU-Kerne zu verteilen, in dem mehrere Prozesse gestartet werden und eingehende Anfragen von einem übergeordnetem Master-Prozess aufgeteilt werden. Der Cluster-Modus ermöglicht es auch, Node.js-Anwendungen ohne Downtime zwischen dem Neustart zu aktualisieren. Hierbei leitet der Master-Prozess die Anfragen einfach so lange an die Prozesse der alten Anwendung weiter, bis die neue Anwendung zum Bearbeiten von Anfragen bereit ist und beendet die alten Prozesse anschließend.

Um auch bei einem Server-Neustart alle Anwendungen automatisch wiederherzustellen, lässt sich mit PM2 ein Startup-Script für gängige Linux-/Unix-Betriebsysteme erzeugen, welches sich im System verankert und alle zuvor laufenden Anwendungen automatisch wieder startet.

Automatische Neustarts #

Um Anwendungen bei Änderungen am Code nicht immer manuell Neustarten zu müssen, lassen sich optional auch Änderungen an den Dateien überwachen woraufhin die Anwendung automatisch neugestartet werden kann.

Da dies auch während der Entwicklung einer Node.js-Anwendung nützlich sein kann, bietet PM2 auch einen speziellen Entwicklungs-Modus an. Hiermit wird die ausgeführte Anwendung bei Codeänderungen ebenfalls neugestartet, allerdings läuft sie hierbei im Vordergrund und nicht als Hintergrund-Prozess.

Modul-System #

Wem die hier genannten Features nicht ausreichen, der kann PM2 über ein integriertes Modul-System auch um zusätzliche Funktionalitäten erweitern. So gibt es z.B. ein Modul, mit dem per Git heruntergeladene Anwendungen immer automatisch auf dem letzten Versionsstand gehalten werden können.

PM2 installieren #

Die Installation von PM2 geht schnell und einfach. Vorausgesetzt wird lediglich dass Node.js, sowie der mitgelieferte Paketmanager NPM installiert sind.

Zur Installation von PM2 gibt man folgende Anweisung in die Konsole des Betriebsystems ein:

npm install pm2@latest -g

Anschließend kann man Node.js-Anwendungen folgendermaßen starten:

pm2 start app.js

Weitere grundlegende Informationen zur Einrichtung und Bedienung von PM2 finden sich in der offiziellen Einführung.

Keymetrics #

Wer Node.js-Anwendungen im Unternehmensbereich betreibt, der könnte darüber hinaus auch an dem kommerziellen Webdienst namens Keymetrics interessiert sein, der auf PM2 basiert und von den gleichen Entwicklern stammt.

Dieser Dienst stellt ein allumfassendes Web-Dashboard dar, mit dem sich die Aktivitäten von Node.js-Anwendungen global überwachen lassen, auch über mehrere Server hinweg und ohne dass man sich dazu direkt mit dem jeweiligen Server verbinden muss. Für einen einzelnen Server ist er in der Basis-Version übrigens kostenlos nutzbar.

VN:F [1.9.22_1171]
Bewertung: 3.5/5 (4 Bewertungen)
PM2 – Der Prozess-Manager für Node.js-Anwendungen, 3.5 out of 5 based on 4 ratings
Regelmäßige Beiträge über Node.js

nodecodeAbonniere den kostenlosen NodeCode-Newsletter, und bleibe auf dem laufenden über neue Beiträge zum Thema Node.js. Darunter:

  • Informationen und Neuigkeiten rund um Node.js und zugehörigen Modulen
  • Vorstellung von interessanten Frameworks und Bibliotheken
  • Anleitungen und Tutorials zu Node.js und weiterführenden Technologien
  • Sowie vieles mehr...

schon 2 Kommentare gehe zum kommentieren

  1. Besserwisser /

    „Jetzt gibt es“, wie lange beschäftigt ihr euch eigentlich wirklich mit NodeJs :)?

    1. NodeCode / Beitrags-Autor

      Stimmt, die Entwicklung von PM2 hat natürlich bereits viel eher angefangen als dieser Artikel veröffentlicht wurde. Dennoch ist PM2 im Vergleich zu Forever ein relativ junges und vor allem weniger bekanntes Tool.

      Erwähnenswert ist zudem noch, PM2 erst vor ca. einem Monat den Beta-Status verlassen hat.

hinterlasse einen Kommentar