4 Gestori di Processi per Applicazioni Node.js in Linux

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.

Permette di monitorare i servizi in esecuzione e semplifica le attività di amministrazione del sistema comuni (come il riavvio in caso di fallimento, l’arresto, il ricaricamento delle configurazioni senza interruzioni, la modifica di variabili d’ambiente/impostazioni, mostrare le metriche di prestazioni e molto altro). Supporta anche il logging applicativo, il clustering e il bilanciamento della carico, e molte altre funzionalità utili per la gestione dei processi.

Leggi anche: 14 migliori framework NodeJS per sviluppatori nel 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 è un process manager open-source, avanzato, dotato di numerose funzionalità, cross-platform e il più popolare process manager di produzione per Node.js con un load balancer integrato. Permette di elencare, monitorare e agire su tutti i processi Nodejs avviati, e supporta la modalità cluster.

Install PM2 to Run Nodejs Apps in Linux

Supporta il monitoraggio dell’applicazione: offre un modo semplice per monitorare l’utilizzo delle risorse (memoria e CPU) dell’applicazione. Supporta il tuo workflow di gestione dei processi permettendoti di configurare e sintonizzare il comportamento di ogni applicazione tramite un file di processo (i formati supportati comprendono Javascript, JSON e YAML).

I log dell’applicazione sono sempre fondamentali in un ambiente di produzione, a tal proposito PM2 ti consente di gestire facilmente i log dell’applicazione. Fornisce diversi modi e formati per gestire e visualizzare i log rispettivamente. È possibile visualizzare i log in tempo reale, svuotarli e ricaricarli quando necessario.

In modo importante, PM2 supporta gli script di avvio che è possibile configurare per avviare automaticamente i processi in caso di riavvii attesi o imprevisti della macchina. Supporta anche il riavvio automatico di un’applicazione quando un file viene modificato nella directory corrente o nelle sue sottodirectory.

Inoltre, PM2 è dotato di un sistema di moduli che consente agli utenti di creare moduli personalizzati per la gestione dei processi Nodejs. Ad esempio, è possibile creare un modulo per la rotazione dei log o il bilanciamento del carico, e molto altro ancora.

Ultimo ma non meno importante, se si utilizzano container Docker, PM2 consente l’integrazione dei container e offre un sistema di API che consente di utilizzarlo in modo programmato.

2. StrongLoop PM

StrongLoop PM è anche un gestore di processi di produzione avanzato e open source per le applicazioni Node.js con bilanciamento del carico integrato, proprio come PM2, e può essere utilizzato tramite linea di comando o interfaccia grafica.

StrongLoop PM Process Manager for Nodejs

Supporta il monitoraggio dell’applicazione (visualizza le metriche delle prestazioni come i tempi di event loop, consumo di CPU e memoria), il deployment multi-host, la modalità cluster, il riavvio e l’aggiornamento dell’applicazione senza tempi di inattività, il riavvio automatico dei processi in caso di errore e l’aggregazione e la gestione dei log.

Inoltre, include il supporto per Docker, ti consente di esportare le metriche delle prestazioni su server compatibili con StatsD e di visualizzarle in console di terze parti come DataDog, Graphite, Splunk oltre a Syslog e file di log grezzi.

3. Forever

Forever è uno strumento open-source, semplice e configurabile da interfaccia a riga di comando per eseguire continuamente uno script fornito (per sempre). È adatto per eseguire distribuzioni più piccole di app e script Node.js. Puoi utilizzare forever in due modi: tramite la riga di comando o incorporandolo nel tuo codice.

Forever Run Scripts Continuously

Consente di gestire (avviare, elencare, interrompere, interrompere tutto, riavviare, riavviare tutto, ecc..) i processi Node.js e supporta il monitoraggio delle modifiche ai file, la modalità di debug, i registri dell’applicazione, l’uccisione di un processo e la personalizzazione del segnale di uscita, e molto altro ancora. Inoltre, supporta diverse opzioni di utilizzo che è possibile passare direttamente dalla riga di comando o passare in un file JSON.

4. SystemD – Gestore di servizi e di sistema

In Linux, Systemd è un demone che gestisce le risorse di sistema come processi e altri componenti del sistema di file. Qualsiasi risorsa gestita da systemd è nota come unità. Esistono diversi tipi di unità, tra cui servizio, dispositivo, socket, mount, target e molte altre unità.

Systemd gestisce le unità tramite un file di configurazione noto come file unità. Pertanto, per gestire il tuo server Node.js come qualsiasi altro servizio di sistema, è necessario creare per esso un file di unità, che in questo caso sarà un file di servizio.Una volta creato un file di servizio per il tuo server Node.js, puoi avviarlo, abilitarlo all’avvio automatico al momento del boot del sistema, verificare lo stato, riavviarlo (arrestarlo e avviarlo di nuovo) o ricaricare la sua configurazione e persino arrestarlo come qualsiasi altro servizio systemd.

Una volta che hai creato un file di servizio per il tuo server Node.js, puoi avviarlo, abilitare l’avvio automatico al momento del boot del sistema, controllarne lo stato, riavviarlo (fermarlo e avviarlo di nuovo) o ricaricare la sua configurazione e persino fermarlo come qualsiasi altro servizio systemd.

Per ulteriori informazioni, consulta: Come creare e eseguire nuovi unità di servizio in Systemd utilizzando uno script shell

Riassunto

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/