Slik aktiverer du PM2 for å automatisk starte Node.js-appen ved systemoppstart
PM2 er en kraftig, mye brukt og funksjonsrik, produksjonsklar prosessleder for Node.js. Å starte PM2 på nytt med prosessene den administrerer hver gang serveren din starter/starter på nytt er kritisk. En av PM2s nøkkelfunksjoner er støtte for et oppstartsskript (generert dynamisk basert på standard init-systemet på serveren din), som starter PM2 og prosessene dine på nytt ved hver omstart av serveren.
Startskriptet setter opp PM2 som en tjeneste under init-systemet. Når serveren starter på nytt, vil den automatisk starte PM2 på nytt, som deretter vil starte alle Node.js-applikasjonene/prosessene den administrerer på nytt.
I denne artikkelen vil vi vise deg hvordan du distribuerer PM2 som en tjeneste for pålitelig å administrere Node.js-appene dine. For denne veiledningen bruker testsystemet en systemd-tjeneste og systemadministrator. Alle kommandoer i denne artikkelen vil bli utført som root (bruk sudo der det er nødvendig for en bruker med rettigheter til å påkalle den).
Generer PM2 Start Script for Init System
PM2 er designet for å fungere med standard init-system på et Linux-system (som det kan oppdage automatisk) for å generere oppstartsskriptet og konfigurere PM2 > som en tjeneste som kan startes på nytt ved systemoppstart.
For å generere oppstartsskriptet, kjør ganske enkelt følgende kommando som root:
pm2 startup
oppstart-underkommandoen forteller PM2 å oppdage tilgjengelig init-system, generere konfigurasjon og aktivere oppstartssystemet.
Du kan også eksplisitt spesifisere init-systemet slik:
pm2 startup systems
For å bekrefte at PM2-oppstartstjenesten er oppe og kjører under systemd, kjør følgende kommando (erstatt pm2-root.service med den faktiske navnet på tjenesten din, sjekk utdataene fra forrige kommando):
systemctl status pm2-root.service
Start Node.js-applikasjoner/prosesser
Deretter vil du starteNode.js-applikasjonene dine ved å bruke PM2 som følger. Hvis du allerede har dem oppe og går, startet via PM2, kan du hoppe over dette trinnet:
cd /var/www/backend/api-v1-staging/
pm2 start src/bin/www.js -n api-service-staging
Deretter må du registrere/lagre den gjeldende listen over prosesser du vil administrere ved å bruke PM2, slik at de vil gjenoppstå ved systemoppstart (hver gang det forventes eller en uventet server omstart), av kjører følgende kommando:
pm2 save
Bekreft PM2 Auto Starting Node.js-apper ved oppstart
Til slutt må du teste om oppsettet fungerer bra. Start systemet på nytt, og sjekk om alle Node.js-prosessene kjører under PM2.
pm2 ls
or
pm2 status
Merk at du kan gjenopplive prosesser manuelt ved å kjøre følgende kommando:
pm2 resurrect
Deaktiver oppstartssystemet
Du kan deaktivere oppstartssystemet ved å kjøre unstartup-underkommandoen som vist.
pm2 unstartup
OR
pm2 startup systemd
For å oppdatere oppstartsskriptet, deaktiver det først og start det på nytt som vist.
pm2 unstartup
pm2 startup
Referanse: PM2 Startup Script Generator.