സിസ്റ്റം ബൂട്ടിൽ Node.js ആപ്പ് ഓട്ടോ സ്റ്റാർട്ട് ചെയ്യാൻ PM2 എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാം


Node.js-നുള്ള ശക്തവും വ്യാപകമായി ഉപയോഗിക്കുന്നതും ഫീച്ചർ സമ്പന്നവും പ്രൊഡക്ഷൻ-റെഡി പ്രോസസ് മാനേജരുമാണ് PM2. നിങ്ങളുടെ സെർവർ ബൂട്ട് ചെയ്യുമ്പോഴോ/റീബൂട്ട് ചെയ്യുമ്പോഴോ അത് കൈകാര്യം ചെയ്യുന്ന പ്രക്രിയകൾ ഉപയോഗിച്ച് PM2 പുനരാരംഭിക്കുന്നത് നിർണായകമാണ്. PM2-ന്റെ പ്രധാന സവിശേഷതകളിൽ ഒന്ന് സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റിനുള്ള പിന്തുണയാണ് (നിങ്ങളുടെ സെർവറിലെ ഡിഫോൾട്ട് init സിസ്റ്റത്തെ അടിസ്ഥാനമാക്കി ചലനാത്മകമായി ജനറേറ്റുചെയ്യുന്നത്), അത് PM2 പുനരാരംഭിക്കുന്നു, ഓരോ സെർവർ പുനരാരംഭിക്കുമ്പോഴും നിങ്ങളുടെ പ്രക്രിയകൾ.

[ നിങ്ങൾക്ക് ഇതും ഇഷ്ടപ്പെടാം: പ്രൊഡക്ഷൻ സെർവറിൽ Node.js ആപ്പുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് PM2 എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം ]

ആരംഭ സ്ക്രിപ്റ്റ്, init സിസ്റ്റത്തിന് കീഴിലുള്ള ഒരു സേവനമായി PM2 സജ്ജീകരിക്കുന്നു. സെർവർ പുനരാരംഭിക്കുമ്പോൾ, അത് PM2 യാന്ത്രികമായി പുനരാരംഭിക്കും, അത് അത് കൈകാര്യം ചെയ്യുന്ന എല്ലാ Node.js ആപ്ലിക്കേഷനുകളും/പ്രക്രിയകളും പുനരാരംഭിക്കും.

ഈ ലേഖനത്തിൽ, നിങ്ങളുടെ Node.js ആപ്പുകൾ വിശ്വസനീയമായി കൈകാര്യം ചെയ്യുന്നതിനുള്ള ഒരു സേവനമായി PM2 എങ്ങനെ വിന്യസിക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതരാം. ഈ ഗൈഡിനായി, ടെസ്റ്റ് സിസ്റ്റം ഒരു systemd സേവനവും സിസ്റ്റം മാനേജറും ഉപയോഗിക്കുന്നു. ഈ ലേഖനത്തിലെ എല്ലാ കമാൻഡുകളും റൂട്ട് ആയി എക്സിക്യൂട്ട് ചെയ്യപ്പെടും (പ്രിവിലേജുകളുള്ള ഒരു ഉപയോക്താവിന് അത് അഭ്യർത്ഥിക്കാൻ ആവശ്യമുള്ളിടത്ത് sudo ഉപയോഗിക്കുക).

Init സിസ്റ്റത്തിനായി PM2 സ്റ്റാർട്ട് സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുക

സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റ് ജനറേറ്റ് ചെയ്യുന്നതിനും സിസ്റ്റം ബൂട്ടിൽ പുനരാരംഭിക്കാവുന്ന ഒരു സേവനമായി PM2 കോൺഫിഗർ ചെയ്യുന്നതിനും ഒരു ലിനക്സ് സിസ്റ്റത്തിൽ (അതിന് സ്വയമേവ കണ്ടുപിടിക്കാൻ കഴിയുന്ന) ഡിഫോൾട്ട് init സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്നതിനാണ് PM2 രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.

സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുന്നതിന്, താഴെ പറയുന്ന കമാൻഡ് റൂട്ടായി പ്രവർത്തിപ്പിക്കുക:

# pm2 startup

ലഭ്യമായ init സിസ്റ്റം കണ്ടെത്താനും കോൺഫിഗറേഷൻ ജനറേറ്റ് ചെയ്യാനും സ്റ്റാർട്ടപ്പ് സിസ്റ്റം പ്രവർത്തനക്ഷമമാക്കാനും സ്റ്റാർട്ടപ്പ് സബ്-കമാൻഡ് PM2-നോട് പറയുന്നു.

നിങ്ങൾക്ക് ഇതുപോലെ init സിസ്റ്റം വ്യക്തമായി വ്യക്തമാക്കാനും കഴിയും:

# pm2 startup systems

PM2 സ്റ്റാർട്ടപ്പ് സേവനം systemd-ന് കീഴിൽ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിക്കുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക (pm2-root.service നിങ്ങളുടെ സേവനത്തിന്റെ യഥാർത്ഥ പേര് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക, മുമ്പത്തെ കമാൻഡിന്റെ ഔട്ട്പുട്ട് പരിശോധിക്കുക):

# systemctl status pm2-root.service

Node.js ആപ്ലിക്കേഷനുകൾ/പ്രക്രിയകൾ ആരംഭിക്കുക

അടുത്തതായി, ഇനിപ്പറയുന്ന രീതിയിൽ PM2 ഉപയോഗിച്ച് നിങ്ങളുടെ Node.js ആപ്ലിക്കേഷനുകൾ ആരംഭിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു. പിuഎം 2 വഴി ആരംഭിച്ച് അവ ഇതിനകം പ്രവർത്തനക്ഷമമാണെങ്കിൽ, നിങ്ങൾക്ക് ഈ ഘട്ടം ഒഴിവാക്കാം:

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

അടുത്തതായി, PM2 ഉപയോഗിച്ച് നിങ്ങൾ നിയന്ത്രിക്കാൻ ആഗ്രഹിക്കുന്ന പ്രക്രിയകളുടെ നിലവിലെ ലിസ്റ്റ് രജിസ്റ്റർ ചെയ്യുക/സംരക്ഷിക്കേണ്ടതുണ്ട്, അതിലൂടെ അവ സിസ്റ്റം ബൂട്ടിൽ (അത് പ്രതീക്ഷിക്കപ്പെടുമ്പോഴോ അല്ലെങ്കിൽ അപ്രതീക്ഷിതമായ സെർവർ പുനരാരംഭിക്കുമ്പോഴോ), ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിച്ച് വീണ്ടും സ്uപോൺ ചെയ്യും:

# pm2 save

ബൂട്ടിൽ PM2 ഓട്ടോ സ്റ്റാർട്ടിംഗ് Node.js ആപ്പുകൾ പരിശോധിച്ചുറപ്പിക്കുക

അവസാനമായി, സജ്ജീകരണം നന്നായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് നിങ്ങൾ പരിശോധിക്കേണ്ടതുണ്ട്. നിങ്ങളുടെ സിസ്റ്റം പുനരാരംഭിക്കുക, നിങ്ങളുടെ എല്ലാ Node.js പ്രോസസ്സുകളും PM2-ന് കീഴിൽ പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക.

# pm2 ls
or
# pm2 status

ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് പ്രക്രിയകൾ സ്വമേധയാ പുനരുജ്ജീവിപ്പിക്കാൻ കഴിയുമെന്നത് ശ്രദ്ധിക്കുക:

# pm2 resurrect

സ്റ്റാർട്ടപ്പ് സിസ്റ്റം പ്രവർത്തനരഹിതമാക്കുക

കാണിച്ചിരിക്കുന്നതുപോലെ അൺസ്റ്റാർട്ടപ്പ് സബ്-കമാൻഡ് പ്രവർത്തിപ്പിച്ച് നിങ്ങൾക്ക് സ്റ്റാർട്ടപ്പ് സിസ്റ്റം പ്രവർത്തനരഹിതമാക്കാം.

# pm2 unstartup
OR
# pm2 startup systemd

സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റ് അപ്ഡേറ്റ് ചെയ്യുന്നതിന്, ആദ്യം, അത് പ്രവർത്തനരഹിതമാക്കുക, തുടർന്ന് കാണിച്ചിരിക്കുന്നതുപോലെ വീണ്ടും ആരംഭിക്കുക.

# pm2 unstartup
# pm2 startup

റഫറൻസ്: PM2 സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റ് ജനറേറ്റർ.