Kako omogočiti PM2 za samodejni zagon aplikacije Node.js ob zagonu sistema


PM2 je zmogljiv, široko uporabljen in s funkcijami bogat, za proizvodnjo pripravljen upravljalnik procesov za Node.js. Ponovni zagon PM2 s procesi, ki jih upravlja, je kritičen ob vsakem zagonu/ponovnem zagonu strežnika. Ena od ključnih funkcij PM2 je podpora za zagonski skript (ustvarjen dinamično na podlagi privzetega sistema init na vašem strežniku), ki znova zažene PM2 in vaše procese ob vsakem ponovnem zagonu strežnika.

[ Morda vam bo všeč tudi: Kako namestiti PM2 za zagon aplikacij Node.js na produkcijskem strežniku ]

Začetni skript nastavi PM2 kot storitev v sistemu init. Ko se strežnik znova zažene, bo samodejno znova zagnal PM2, ki bo nato znova zagnal vse aplikacije/procese Node.js, ki jih upravlja.

V tem članku vam bomo pokazali, kako uvesti PM2 kot storitev za zanesljivo upravljanje vaših aplikacij Node.js. Za ta priročnik testni sistem uporablja storitev systemd in sistemski upravitelj. Vsi ukazi v tem članku se bodo izvajali kot root (uporabite sudo, kjer je to potrebno, da ga uporabnik s privilegiji pokliče).

Ustvari zagonski skript PM2 za sistem Init

PM2 je zasnovan tako, da deluje s privzetim sistemom init v sistemu Linux (ki ga lahko samodejno zazna), da ustvari zagonski skript in konfigurira PM2 kot storitev, ki jo je mogoče znova zagnati ob zagonu sistema.

Če želite ustvariti zagonski skript, preprosto zaženite naslednji ukaz kot root:

# pm2 startup

Podukaz za zagon pove PM2, naj zazna razpoložljivi init sistem, ustvari konfiguracijo in omogoči zagonski sistem.

Sistem init lahko tudi izrecno določite tako:

# pm2 startup systems

Če želite potrditi, da je zagonska storitev PM2 vzpostavljena in deluje pod systemd, zaženite naslednji ukaz (zamenjajte pm2-root.service z dejanskim imenom vaše storitve, preverite izhod prejšnjega ukaza):

# systemctl status pm2-root.service

Zaženite aplikacije/procese Node.js

Nato želite zagnati svoje aplikacije Node.js z uporabo PM2, kot sledi. Če jih že imate pripravljene in zagnane prek PM2, lahko ta korak preskočite:

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

Nato morate registrirati/shraniti trenutni seznam procesov, ki jih želite upravljati z uporabo PM2, tako da se bodo znova pojavili ob zagonu sistema (vsakič, ko je pričakovano ali nepričakovan ponovni zagon strežnika), tako da zaženete naslednji ukaz:

# pm2 save

Preverite samodejni zagon aplikacij Node.js PM2 ob zagonu

Na koncu morate preizkusiti, ali nastavitev deluje dobro. Znova zaženite sistem in preverite, ali se vsi vaši procesi Node.js izvajajo pod PM2.

# pm2 ls
or
# pm2 status

Upoštevajte, da lahko procese ročno oživite tako, da zaženete naslednji ukaz:

# pm2 resurrect

Onemogočite zagonski sistem

Zagonski sistem lahko onemogočite tako, da zaženete podukaz unstartup, kot je prikazano.

# pm2 unstartup
OR
# pm2 startup systemd

Če želite posodobiti zagonski skript, ga najprej onemogočite in nato znova zaženite, kot je prikazano.

# pm2 unstartup
# pm2 startup

Referenca: Generator zagonskega skripta PM2.