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.
Het laat u toe om de draaiende services te monitoren en het maakt gewone systeembeheer taken gemakkelijker (zoals herstarten bij een fout, stoppen, configureeringsgegevens opnieuw laden zonder downtime, het wijzigen van omgevingsvariabelen/instellingen, het weergeven van prestatiegegevens en veel meer). Het ondersteunt ook applicatielogging, clustering en load balancing, en vele andere nuttige processenbeheerfuncties.
Lees Ook: 14 Beste NodeJS-framework voor ontwikkelaars in 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 is een open-source, geavanceerd, functioneel rijk, cross-platform en het meest populaire productieniveau processenbeheerder voor Node.js met een ingebouwde load balancer. Het laat u toe om een lijst te maken, de status en acties uit te voeren op alle gestarte Nodejs-processen en ondersteunt clustermodus.

Hij ondersteunt applicatiebeheer: biedt een eenvoudige manier om de resource (geheugen en CPU) gebruik van uw applicatie te monitoren. Het ondersteunt uw processenbeheerwerkflow door u toe te staan de gedrag van elke applicatie te configureren en af te stemmen via een processenbestand (ondersteunde formaten zijn Javascript, JSON en YAML).
Logbestanden zijn altijd belangrijk in een productieomgeving, en daarin staat PM2 u in staat om gemakkelijk uw toepassingslogbestanden te beheren. Het biedt verschillende manieren en formaten voor het afhandelen en weergeven van logbestanden. U kunt logbestanden in real-time weergeven, flushen en opnieuw laden als nodig.
Belangrijk is dat PM2 startupscripts ondersteunt die u kunt configureren om automatisch uw processen te starten bij verwachte of onverwachte machineherstarten. Het ondersteunt ook automatisch herstarten van een toepassing als een bestand is aangepast in de huidige map of haar submappen.
Verder biedt PM2 een moduleysteem dat gebruikers toestaat om aangepaste modules te maken voor Node.js-processbeheer. Bijvoorbeeld, u kunt een module voor logschakeling of loadbalancing aanmaken, en veel meer.
En tenslotte, als u Docker-containers gebruikt, ondersteund PM2 containerintegratie, en biedt het een API-systeem dat u programmatisch kunt gebruiken.
2. StrongLoop PM
StrongLoop PM is ook een open-source geavanceerd productieprocesbeheerder voor Node.js-toepassingen met ingebouwde loadbalancing, net als PM2, en kan worden gebruikt via een commandoregel of een grafische interface.

Het ondersteunt applicatiemonitoring (bekijk prestatie-indicatoren zoals gebeurtenislus tijden, CPU- en geheugenverbruik), multi-host-implementatie, clustermodus, herstart en upgraden van applicaties zonder downtime, automatische procesherstart bij falen, en log-aggregatie en -beheer.
Bovendien wordt het geleverd met Docker-ondersteuning, waarmee u prestatie-indicatoren kunt exporteren naar StatsD-compatibele servers, en bekijken in consoles van derden zoals DataDog, Graphite, Splunk, evenals Syslog en ruwe logbestanden.
3. Forever
Forever is een open-source, eenvoudige en configureerbare command-line interface tool om een gegeven script continu (voor altijd) uit te voeren. Het is geschikt voor het uitvoeren van kleinere implementaties van Node.js apps en scripts. U kunt forever op twee manieren gebruiken: via de command-line of door het in uw code in te sluiten.

Het laat u toe Node.js-processen te beheren (starten, lijst, stoppen, stoppen allemaal, opnieuw starten, opnieuw starten allemaal, enzovoort). Het ondersteunt het controleren van bestandswijzigingen, debug-modus, toepassingslogboeken, het beëindigen van een proces en het aanpassen van het afsluitingssignaal, en nog veel meer. Bovendien ondersteunt het verschillende gebruiksopties die u direct vanaf de commandoregel kunt doorgeven of die u in een JSON-bestand kunt sturen.
4. SystemD – Service- en Systeembeheerder
In Linux is Systemd een daemon die systeembronnen zoals processen en andere bestandssysteemcomponenten beheert. Elk door systemd beheerd bronnen wordt een eenheid genoemd. Er zijn verschillende typen eenheden inbegrepen dienst, apparaat, socket, mount, doel en vele andere eenheden.
Systemd beheert eenheden via een configuratiebestand dat een eenheidbestand wordt genoemd. Daarom moet u een eenheidbestand voor uw Node.js-server aanmaken om die net als andere systeemdiensten te kunnen beheren. In dit geval zal dat een dienstbestand zijn.
Zodra u een servicebestand voor uw Node.js server hebt gemaakt, kunt u deze starten, inschakelen om automatisch te starten bij het opstarten van het systeem, de status ervan controleren, opnieuw starten (stoppen en opnieuw starten), de configuratie ervan herladen en zelfs stoppen zoals bij elke andere systemd-service.
Voor meer informatie, zie: Hoe te creëren en uitvoeren van nieuwe service-eenheden in Systemd met behulp van shellscript
Samenvatting
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/