Com habilitar PM2 a l'inici automàtic de l'aplicació Node.js a l'arrencada del sistema


PM2 és un gestor de processos potent, àmpliament utilitzat i ric en funcions i llest per a la producció per a Node.js. Reiniciar PM2 amb els processos que gestiona cada vegada que el vostre servidor arrenca/reinicia és fonamental. Una de les característiques clau de PM2 és el suport per a un script d'inici (generat dinàmicament en funció del sistema d'inici predeterminat del vostre servidor), que reinicia PM2 i els vostres processos a cada reinici del servidor.

[També us pot agradar: Com instal·lar PM2 per executar aplicacions Node.js al servidor de producció]

L'script d'inici configura PM2 com a servei sota el sistema d'inici. Quan el servidor es reinicia, reiniciarà automàticament PM2, que després reiniciarà totes les aplicacions/processos de Node.js que gestiona.

En aquest article, us mostrarem com implementar PM2 com a servei per gestionar de manera fiable les vostres aplicacions Node.js. Per a aquesta guia, el sistema de prova utilitza un gestor del sistema i un servei de sistema. Totes les ordres d'aquest article s'executaran com a root (utilitzeu sudo quan sigui necessari perquè un usuari amb privilegis l'invoqui).

Genereu l'script d'inici PM2 per al sistema d'inici

PM2 està dissenyat per funcionar amb el sistema d'inici predeterminat en un sistema Linux (que pot detectar automàticament) per generar l'script d'inici i configurar PM2 com un servei que es pot reiniciar a l'arrencada del sistema.

Per generar l'script d'inici, només cal que executeu l'ordre següent com a root:

# pm2 startup

La subordre d'inici diu a PM2 que detecti el sistema d'inici disponible, generi configuració i habiliti el sistema d'inici.

També podeu especificar explícitament el sistema d'inici d'aquesta manera:

# pm2 startup systems

Per confirmar que el servei d'inici de PM2 està en funcionament a systemd, executeu l'ordre següent (substituïu el pm2-root.service pel nom real del vostre servei, comproveu la sortida de l'ordre anterior):

# systemctl status pm2-root.service

Inicieu les aplicacions/processos de Node.js

A continuació, voleu iniciar les vostres aplicacions Node.js utilitzant PM2 de la manera següent. Si ja els teniu en funcionament, iniciats mitjançant PM2, podeu ometre aquest pas:

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

A continuació, heu de registrar/desar la llista actual de processos que voleu gestionar amb PM2 perquè es tornin a generar a l'arrencada del sistema (cada cop que s'espera o un reinici del servidor inesperat), executant l'ordre següent:

# pm2 save

Verifiqueu l'inici automàtic de les aplicacions Node.js de PM2 a l'arrencada

Finalment, heu de provar si la configuració funciona bé. Reinicieu el vostre sistema i comproveu si tots els vostres processos Node.js s'estan executant sota PM2.

# pm2 ls
or
# pm2 status

Tingueu en compte que podeu reactivar els processos manualment executant l'ordre següent:

# pm2 resurrect

Desactiveu el sistema d'inici

Podeu desactivar el sistema d'inici executant la subordre unstartup tal com es mostra.

# pm2 unstartup
OR
# pm2 startup systemd

Per actualitzar l'script d'inici, primer, desactiveu-lo i, a continuació, torneu a iniciar-lo tal com es mostra.

# pm2 unstartup
# pm2 startup

Referència: PM2 Startup Script Generator.