Gestiamo i processi Node.js con PM2

Gestiamo i processi Node.js con PM2

Una delle attività che spesso ricorre per un amministratore di sistema o uno sviluppatore è come gestire i processi delle applicazioni Node.js; ad esempio come poter avviare al boot del Sistema Operativo (ad esempio su di una distribuzione Linux) le applicazioni Node.js.

Creaimo un server di mappe geospaziali con Node.js e Mapbox
Documentiamo la nostra REST API con Swagger
Creiamo una REST API con Node.js e MongoDB

Una delle attività che spesso ricorre per un amministratore di sistema o uno sviluppatore è come gestire i processi delle applicazioni Node.js; ad esempio come poter avviare al boot del Sistema Operativo (ad esempio su di una distribuzione Linux) le applicazioni Node.js.

Un gestore di processi (process manager) è simile a un server delle applicazioni: è un “contenitore” di applicazioni che facilita lo sviluppo, fornisce un’elevata disponibilità e consente di gestire l’applicazione a runtime.

Tra i process manager più utilizzati c’è sicuramente una libreria npm denominata PM2.

PM2 è un process manager che ci aiuta ad avviare le nostre applicazioni Node.js all’avvio del Sistema Operativo e riavviarle con facilità. PM2 ha una sua CLI semplice e intuitiva, installabile tramite NPM.

Per installare PM2 basta il seguente comando npm:

npm install pm2 -g

Il modo più semplice per avviare, demonizzare e monitorare un’applicazione è utilizzare questa riga di comando:

pm2 start app.js

In caso di script più complessi, ad esempio npm run qualcosa, possiamo utilizzare questa sintassi:

pm2 start "npm run server" --name RestAPI --watch

dove tra virgolette troviamo il nostro script npm di avvio, mentre on –name battezziamo la nostra applicazione con un nome (nel nostro caso RestAPI) mentre con –watch indichiamo che vogliamo il restart dell’applicazione nel caso in cui vengano modificati dei suoi file.

Per rendere l’applicazione gestita da ora in avanti da PM2 bisogna salvarla con il comando:

pm2 save

Per generare lo script di startup invece bisogna dare il comando:

pm2 startup

Con l’opzione describe possiamo invece ottenere delle informazioni utili sulla nostra applicazione, ad esempio con quali argomenti è stata lanciata:

pm2 describe RestAPI

Per ottenere una lista delle applicazioni Node.js gestite da PM2, basta lanciare:

pm2 list

ed otterremo un risultato del tipo:

Lista di processi Node.js gestiti da PM2

Con il comando pm2 monit invece otteniamo una schermata con la quale monitorare in tempo reale le nostre applicazioni:

PM2 monit
Monitoriamo le nostre App in real-time

COMMENTS

WORDPRESS: 1
  • comment-avatar

    Come sempre un’ottima guida, ben fatta