Ricerca nel sito web

4 Gestori di processo per applicazioni Node.js in Linux


Un gestore processi Node.js è uno strumento utile per garantire che un processo o uno script Node.js venga eseguito continuamente (per sempre) e possa abilitarne l'avvio automatico all'avvio del sistema .

Consente di monitorare i servizi in esecuzione e facilita le attività comuni di amministrazione del sistema (come il riavvio in caso di errore, l'arresto, il ricaricamento delle configurazioni senza tempi di inattività, la modifica delle variabili/impostazioni di ambiente, la visualizzazione delle metriche delle prestazioni e molto altro ancora). Supporta inoltre la registrazione delle applicazioni, il clustering e il bilanciamento del carico e tante altre utili funzionalità di gestione dei processi.

Leggi anche: 14 migliori framework NodeJS per sviluppatori nel 2019

Un gestore di pacchetti è utile soprattutto per la distribuzione di applicazioni Node.js in un ambiente di produzione. In questo articolo esamineremo quattro gestori di processi per la gestione delle applicazioni Node.js in un sistema Linux.

1. PM2

PM2 è un gestore di processi a livello di produzione open source, avanzato, ricco di funzionalità, multipiattaforma e più popolare per Node.js con un bilanciatore del carico integrato. Ti consente di elencare, monitorare e agire su tutti i processi Nodejs avviati e supporta la modalità cluster.

Supporta il monitoraggio delle applicazioni: offre un modo semplice per monitorare l'utilizzo delle risorse (memoria e CPU) della tua applicazione. Supporta il flusso di lavoro di gestione dei processi consentendoti di configurare e ottimizzare il comportamento di ciascuna applicazione tramite un file di processo (i formati supportati includono Javascript, JSON e YAML).

I log delle applicazioni sono sempre fondamentali in un ambiente di produzione, a questo proposito PM2 ti consente di gestire facilmente i log della tua applicazione. Fornisce diversi modi e formati rispettivamente per la gestione e la visualizzazione dei log. Puoi visualizzare i log in tempo reale, scaricarli e ricaricarli quando necessario.

È importante sottolineare che PM2 supporta gli script di avvio che puoi configurare per avviare automaticamente i processi in caso di riavvio previsto o imprevisto della macchina. Supporta anche il riavvio automatico di un'applicazione quando un file viene modificato nella directory corrente o nelle sue sottodirectory.

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

Ultimo ma non meno importante, se utilizzi contenitori Docker, PM2 consente l'integrazione dei contenitori e offre un sistema API che ti consente di utilizzarlo a livello di programmazione.

2. StrongLoop PM

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

Supporta il monitoraggio delle applicazioni (visualizzazione dei parametri delle prestazioni come tempi del loop degli eventi, consumo di CPU e memoria), distribuzione multi-host, modalità cluster, riavvii e aggiornamenti delle applicazioni senza tempi di inattività, riavvio automatico del processo in caso di errore e aggregazione e gestione dei log.

Inoltre, viene fornito con il supporto Docker, consente di esportare i parametri prestazionali su server compatibili con StatsD e di visualizzarli su console di terze parti come DataDog, Graphite<, Splunk, Syslog e file di registro non elaborati.

3. Per sempre

Forever è uno strumento di interfaccia da riga di comando open source, semplice e configurabile per eseguire un determinato script in modo continuo (per sempre). È adatto per l'esecuzione di 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.

Ti permette di gestire (avviare, elencare, fermare, fermare tutto, riavviare, riavviare tutto, ecc.) i processi Node.js e supporta il controllo delle modifiche ai file, la modalità debug, i log delle applicazioni, l'uccisione della personalizzazione di un processo e del segnale di uscita e molto altro ancora. Inoltre, supporta diverse opzioni di utilizzo che puoi passare direttamente dalla riga di comando o passarle in un file JSON.

4. SystemD – Servizio e Gestore di sistema

In Linux, Systemd è un demone che gestisce le risorse di sistema come processi e altri componenti del file system. Qualsiasi risorsa gestita da systemd è nota come unità. Esistono diversi tipi di unità tra cui servizio, dispositivo, presa, supporto, bersaglio 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, devi creare per esso un file 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 per l'avvio automatico all'avvio del sistema, controllarne lo stato, riavviarlo (interrompilo e riavvialo) o ricaricare la sua configurazione e persino interromperlo come qualsiasi altro servizio systemd.

Per ulteriori informazioni, vedere: Come creare ed eseguire nuove unità di servizio in Systemd utilizzando lo script di shell

Riepilogo

Un gestore di pacchetti Node.js è uno strumento utile per distribuire il tuo progetto in un ambiente di produzione. Mantiene viva un'applicazione per sempre e semplifica il modo in cui puoi controllarla. In questo articolo abbiamo esaminato quattro gestori di pacchetti per Node.js. Se hai integrazioni o domande da porre, utilizza il modulo di feedback sottostante per contattarci.