Ricerca nel sito web

Come abilitare PM2 all'avvio automatico dell'app Node.js all'avvio del sistema


PM2 è un gestore di processi potente, ampiamente utilizzato e ricco di funzionalità, pronto per la produzione per Node.js. Riavviare PM2 con i processi che gestisce ogni volta che il server si avvia/riavvia è fondamentale. Una delle caratteristiche principali di PM2 è il supporto per uno script di avvio (generato dinamicamente in base al sistema init predefinito sul tuo server), che riavvia PM2 e i tuoi processi ad ogni riavvio del server.

Lo script di avvio configura PM2 come servizio nel sistema init. Quando il server si riavvia, riavvierà automaticamente PM2, che riavvierà quindi tutte le applicazioni/processi Node.js che sta gestendo.

In questo articolo ti mostreremo come implementare PM2 come servizio per gestire in modo affidabile le tue app Node.js. Per questa guida, il sistema di test utilizza un servizio systemd e un gestore di sistema. Tutti i comandi in questo articolo verranno eseguiti come root (usa sudo dove necessario affinché un utente con privilegi possa invocarlo).

Genera script di avvio PM2 per il sistema Init

PM2 è progettato per funzionare con il sistema init predefinito su un sistema Linux (che può rilevare automaticamente) per generare lo script di avvio e configurare PM2 come servizio che può essere riavviato all'avvio del sistema.

Per generare lo script di avvio, è sufficiente eseguire il seguente comando come root:

pm2 startup

Il sottocomando startup dice a PM2 di rilevare il sistema init disponibile, generare la configurazione e abilitare il sistema di avvio.

Puoi anche specificare esplicitamente il sistema init in questo modo:

pm2 startup systems

Per confermare che il servizio di avvio PM2 sia attivo e funzionante in systemd, esegui il seguente comando (sostituisci pm2-root.service con l'effettivo nome del tuo servizio, controlla l'output del comando precedente):

systemctl status pm2-root.service

Avvia le applicazioni/processi Node.js

Successivamente, vuoi avviare le tue applicazioni Node.js utilizzando PM2 come segue. Se li hai già installati e funzionanti, avviati tramite PM2, puoi saltare questo passaggio:

cd /var/www/backend/api-v1-staging/
pm2 start src/bin/www.js -n api-service-staging

Successivamente, devi registrare/salvare l'elenco corrente dei processi che desideri gestire utilizzando PM2 in modo che si ripresentino all'avvio del sistema (ogni volta che è previsto o si riavvia inaspettatamente il server), eseguendo il seguente comando:

pm2 save

Verifica l'avvio automatico delle app Node.js PM2 all'avvio

Infine, è necessario verificare se la configurazione funziona correttamente. Riavvia il sistema e controlla se tutti i processi Node.js sono in esecuzione su PM2.

pm2 ls
or
pm2 status

Tieni presente che puoi resuscitare manualmente i processi eseguendo il comando seguente:

pm2 resurrect

Disabilitare il sistema di avvio

Puoi disattivare il sistema di avvio eseguendo il comando secondario unstartup come mostrato.

pm2 unstartup
OR
pm2 startup systemd

Per aggiornare lo script di avvio, innanzitutto disabilitarlo, quindi riavviarlo come mostrato.

pm2 unstartup
pm2 startup

Riferimento: generatore di script di avvio PM2.