A Node.js process manager is a useful tool to ensure that a Node.js process or script runs continuously (forever) and can enable it to auto-start at system boot.
Es ermöglicht Ihnen, die laufenden Dienste zu überwachen und erleichtert gängige Systemverwaltungsaufgaben (wie Neustart bei Ausfall, Stoppen, Neuladen von Konfigurationen ohne Ausfallzeiten, Ändern von Umgebungsvariablen/Einstellungen, Anzeigen von Leistungsmetriken und vieles mehr). Es unterstützt auch Anwendungsprotokollierung, Clustering und Lastverteilung sowie viele andere nützliche Funktionen zur Prozessverwaltung.
Weiterlesen: 14 Beste NodeJS-Frameworks für Entwickler im Jahr 2019
A package manager is useful especially for deployment of Node.js applications in a production environment. In this article, we will review four process managers for Node.js application management in a Linux system.
1. PM2
PM2 ist ein Open-Source, fortschrittlicher, funktionsreicher, plattformübergreifender und der beliebteste Produktionsprozess-Manager für Node.js mit integriertem Lastenausgleich. Es ermöglicht Ihnen, alle gestarteten Nodejs-Prozesse aufzulisten, zu überwachen und darauf zu reagieren, und es unterstützt den Clustermodus.

Es unterstützt die Anwendungsüberwachung: bietet eine einfache Möglichkeit, den Ressourcenverbrauch (Speicher und CPU) Ihrer Anwendung zu überwachen. Es unterstützt Ihren Prozessverwaltungsworkflow, indem es Ihnen ermöglicht, das Verhalten jeder Anwendung über eine Prozessdatei zu konfigurieren und anzupassen (unterstützte Formate sind Javascript, JSON und YAML).
Anwendungsprotokolle sind immer entscheidend in einer Produktionsumgebung, in diesem Zusammenhang ermöglicht es PM2, Ihre Anwendungsprotokolle einfach zu verwalten. Es bietet verschiedene Möglichkeiten und Formate zum Handhaben und Anzeigen von Protokollen. Sie können Protokolle in Echtzeit anzeigen, sie leeren und bei Bedarf neu laden.
Wichtig ist, dass PM2 Startskripte unterstützt, die Sie konfigurieren können, um Ihre Prozesse automatisch bei erwarteten oder unerwarteten Maschinenneustarts zu starten. Es unterstützt auch das automatische Neustarten einer Anwendung, wenn eine Datei im aktuellen Verzeichnis oder in seinen Unterverzeichnissen geändert wird.
Zusätzlich verfügt PM2 über ein Modulsystem, das es Benutzern ermöglicht, benutzerdefinierte Module für das Node.js-Prozessmanagement zu erstellen. Sie können beispielsweise ein Modul für die Protokollrotation oder Lastverteilung erstellen und vieles mehr.
Zu guter Letzt, wenn Sie Docker-Container verwenden, ermöglicht PM2 eine Containerintegration und bietet ein API-System, das es Ihnen ermöglicht, es programmgesteuert zu verwenden.
2. StrongLoop PM
StrongLoop PM ist ebenfalls ein Open-Source, fortschrittlicher Produktionsprozessmanager für Node.js-Anwendungen mit integriertem Lastenausgleich, genau wie PM2, und kann über eine Befehlszeile oder eine grafische Benutzeroberfläche verwendet werden.

Es unterstützt die Anwendungsüberwachung (Anzeigen von Leistungsmetriken wie Ereignisschleifenzeiten, CPU- und Speicherverbrauch), Bereitstellung auf mehreren Hosts, Clustermodus, Anwendungsneustarts und Upgrades ohne Ausfallzeiten, automatischen Neustart von Prozessen bei Fehlern sowie Protokollaggregation und -verwaltung.
Zusätzlich bietet es Unterstützung für Docker, ermöglicht das Exportieren von Leistungsmetriken an StatsD-kompatible Server und das Anzeigen in Drittanbieter-Konsolen wie DataDog, Graphite, Splunk sowie Syslog und Rohprotokolldateien.
3. Forever
Forever ist ein Open-Source-, einfaches und konfigurierbares Befehlszeilenwerkzeug zum kontinuierlichen Ausführen eines bestimmten Skripts (für immer). Es eignet sich für kleinere Bereitstellungen von Node.js-Anwendungen und Skripten. Sie können Forever auf zwei Arten verwenden: über die Befehlszeile oder indem Sie es in Ihren Code einbetten.

Es ermöglicht Ihnen, Node.js-Prozesse zu verwalten (starten, auflisten, stoppen, alle stoppen, neu starten, alle neu starten usw.) und unterstützt das Beobachten von Dateiänderungen, den Debug-Modus, Anwendungsprotokolle, das Beenden eines Prozesses und die Anpassung des Beendigungssignals und vieles mehr. Darüber hinaus unterstützt es mehrere Verwendungsoptionen, die Sie direkt von der Befehlszeile aus übergeben oder in einer JSON-Datei übergeben können.
4. SystemD – Dienst- und System-Manager
In Linux ist Systemd ein Daemon, der Systemressourcen wie Prozesse und andere Komponenten des Dateisystems verwaltet. Jede von systemd verwaltete Ressource wird als Einheit bezeichnet. Es gibt verschiedene Arten von Einheiten, darunter Service, Gerät, Socket, Mount, Ziel und viele andere Einheiten.
Systemd verwaltet Einheiten über eine Konfigurationsdatei, die als Einheitsdatei bekannt ist. Daher müssen Sie zum Verwalten Ihres Node.js-Servers wie jeder anderen Systemdienste eine Einheitsdatei erstellen.
Sobald Sie eine Dienstdatei für Ihren Node.js Server erstellt haben, können Sie ihn starten, aktivieren, um ihn bei Systemstart automatisch zu starten, seinen Status überprüfen, ihn neu starten (anhalten und erneut starten), seine Konfiguration neu laden und sogar ihn wie bei jedem anderen systemd-Dienst beenden.
Weitere Informationen finden Sie unter: So erstellen und führen Sie neue Diensteinheiten in Systemd unter Verwendung eines Shell-Skripts aus
Zusammenfassung
A Node.js package manager is a useful tool for deploying your project in a production environment. It keeps an application alive forever and simplifies how you can control it. In this article, we reviewed four package managers for Node.js. If you have any additions or questions to ask, make use of the feedback form below to reach us.
Source:
https://www.tecmint.com/process-managers-for-node-js-applications-in-linux/