Kif Ippermetti PM2 għal Auto Start Node.js App fil-Boot tas-Sistema


PM2 huwa maniġer tal-proċess b'saħħtu, użat ħafna, u b'ħafna karatteristiċi, lest għall-produzzjoni għal Node.js. Il-bidu mill-ġdid tal-PM2 bil-proċessi li jamministra kull darba li s-server tiegħek boots/reboots huwa kritiku. Waħda mill-karatteristiċi ewlenin tal-PM2 hija l-appoġġ għal script tal-istartjar (iġġenerat dinamikament ibbażat fuq is-sistema init default fuq is-server tiegħek), li jerġa 'jibda PM2 u l-proċessi tiegħek f'kull bidu mill-ġdid tas-server.

[ Jista 'jkollok ukoll: Kif Tinstalla PM2 biex tmexxi Node.js Apps fuq Production Server ]

L-iskript tal-bidu jistabbilixxi PM2 bħala servizz taħt is-sistema init. Meta s-server jerġa 'jibda, awtomatikament jerġa' jibda PM2, li mbagħad jerġa 'jibda l-applikazzjonijiet/proċessi kollha Node.js li jkun qed jimmaniġġja.

F'dan l-artikolu, aħna ser nuruk kif tuża PM2 bħala servizz biex timmaniġġja b'mod affidabbli l-apps Node.js tiegħek. Għal din il-gwida, is-sistema tat-test tuża servizz systemd u maniġer tas-sistema. Il-kmandi kollha f'dan l-artikolu se jiġu esegwiti bħala root (uża sudo fejn meħtieġ għal utent bi privileġġi biex jinvokah).

Iġġenera PM2 Start Script għas-Sistema Init

PM2 huwa ddisinjat biex jaħdem mas-sistema init default fuq sistema Linux (li tista' tiskopri awtomatikament) biex tiġġenera l-iskript tal-istartjar u tikkonfigura PM2 bħala servizz li jista' jerġa' jinbeda fil-boot tas-sistema.

Biex tiġġenera l-iskript tal-istartjar, sempliċement ħaddem il-kmand li ġej bħala root:

# pm2 startup

Is-sottokmand tal-istartjar jgħid lill-PM2 biex jiskopri sistema init disponibbli, jiġġenera konfigurazzjoni u jippermetti s-sistema tal-istartjar.

Tista' wkoll tispeċifika b'mod espliċitu s-sistema init hekk:

# pm2 startup systems

Biex tikkonferma li s-servizz tal-istartjar PM2 qed jaħdem taħt systemd, ħaddem il-kmand li ġej (ibdel il-pm2-root.service bl-isem attwali tas-servizz tiegħek, iċċekkja l-output tal-kmand preċedenti):

# systemctl status pm2-root.service

Ibda Applikazzjonijiet/Proċessi Node.js

Sussegwentement, trid tibda l-applikazzjonijiet Node.js tiegħek billi tuża PM2 kif ġej. Jekk diġà għandekhom jaħdmu, bdew permezz tal-PM2, tista' taqbeż dan il-pass:

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

Sussegwentement, għandek bżonn tirreġistra/issejvja l-lista attwali ta 'proċessi li trid timmaniġġja bl-użu tal-PM2 sabiex jerġgħu jitbiddlu mal-boot tas-sistema (kull darba li jkun mistenni jew jerġa' jibda server mhux mistenni), billi tħaddem il-kmand li ġej:

# pm2 save

Ivverifika PM2 Auto Starting Node.js Apps fil Boot

Fl-aħħarnett, trid tittestja jekk is-setup tkunx qed taħdem sew. Ibda mill-ġdid is-sistema tiegħek, u ċċekkja jekk il-proċessi kollha tiegħek Node.js humiex qed jaħdmu taħt PM2.

# pm2 ls
or
# pm2 status

Innota li tista 'tqajjem il-proċessi manwalment billi tħaddem il-kmand li ġej:

# pm2 resurrect

Itfi s-Sistema tal-Istartjar

Tista' tiddiżattiva s-sistema tal-istartjar billi tħaddem is-sub-kmand tal-unstartup kif muri.

# pm2 unstartup
OR
# pm2 startup systemd

Biex taġġorna l-iskript tal-istartjar, l-ewwel, iddiżattivaha, imbagħad ibda mill-ġdid kif muri.

# pm2 unstartup
# pm2 startup

Referenza: PM2 Startup Script Generator.