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.