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.