PM2 হল একটি শক্তিশালী এবং জনপ্রিয় প্রসেস ম্যানেজার যা Node.js অ্যাপ্লিকেশনগুলি পরিচালনা, মনিটরিং এবং স্কেলিংয়ের জন্য ব্যবহৃত হয়। এটি একটি অত্যন্ত কার্যকর টুল যা আপনার অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে রান করতে সহায়তা করে এবং সার্ভার ক্র্যাশ বা ডাউন হওয়ার পর অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে রিস্টার্ট করে দেয়। PM2 আপনার অ্যাপ্লিকেশনগুলোকে ম্যানেজ করার জন্য বেশ কিছু সুবিধা প্রদান করে যেমন লোগ ম্যানেজমেন্ট, লোড ব্যালান্সিং, এবং অ্যাপ্লিকেশন স্ট্যাটাস মনিটরিং।
এখানে, আমরা ExpressJS অ্যাপ্লিকেশন পরিচালনা এবং মনিটরিং করার জন্য PM2 ব্যবহার করব।
১. PM2 ইনস্টলেশন
PM2 ইন্সটল করার জন্য আপনাকে npm ব্যবহার করতে হবে। নীচে দেওয়া কমান্ডটি দিয়ে আপনি PM2 ইন্সটল করতে পারেন:
npm install pm2@latest -g
এই কমান্ডটি PM2-কে আপনার গ্লোবাল প্যাকেজ হিসেবে ইনস্টল করবে, যাতে আপনি যেকোনো ডিরেক্টরি থেকে PM2 কমান্ড ব্যবহার করতে পারেন।
২. Express অ্যাপ্লিকেশন PM2 দিয়ে রান করা
এখন, আপনি যদি একটি ExpressJS অ্যাপ্লিকেশন চালাতে চান, তবে PM2 ব্যবহার করে এটিকে ব্যাকগ্রাউন্ডে রান করানো যেতে পারে। ধরুন, আপনার ExpressJS অ্যাপ্লিকেশনটির ফাইলের নাম app.js।
pm2 start app.js
এটি আপনার ExpressJS অ্যাপ্লিকেশনটি PM2-এর মাধ্যমে চালু করবে এবং ব্যাকগ্রাউন্ডে রান করতে শুরু করবে। আপনি এই সময় Ctrl + C প্রেস করে টার্মিনাল বন্ধ করলে অ্যাপ্লিকেশনটি থেমে যাবে না, কারণ PM2 এই প্রক্রেসটি মনিটর করছে।
৩. PM2 দিয়ে অ্যাপ্লিকেশন মনিটরিং
PM2 এর মাধ্যমে আপনি সহজেই আপনার ExpressJS অ্যাপ্লিকেশনের স্ট্যাটাস দেখতে পারেন। এর জন্য pm2 list কমান্ড ব্যবহার করুন:
pm2 list
এই কমান্ডটি সমস্ত চলমান অ্যাপ্লিকেশনগুলোর একটি তালিকা দেখাবে, যার মধ্যে অ্যাপ্লিকেশনটির নাম, প্রক্রিয়ার ID, রানে থাকা সময়, স্ট্যাটাস এবং আরও অনেক কিছু থাকবে।
৩.১. অ্যাপ্লিকেশন স্ট্যাটাস চেক করা
আপনি যদি শুধুমাত্র একটি নির্দিষ্ট অ্যাপ্লিকেশনের স্ট্যাটাস দেখতে চান, তবে pm2 status <app-name> কমান্ডটি ব্যবহার করতে পারেন:
pm2 status app.js
এটি অ্যাপ্লিকেশনটির রানিং স্ট্যাটাস এবং অন্যান্য বিস্তারিত তথ্য প্রদর্শন করবে।
৩.২. অ্যাপ্লিকেশন লগ দেখতে
PM2 অ্যাপ্লিকেশনের লগও সহজেই দেখতে দেয়। আপনি pm2 logs কমান্ডটি দিয়ে লগ দেখতে পারেন:
pm2 logs
এটি সমস্ত চলমান অ্যাপ্লিকেশনের লগ দেখাবে। যদি আপনি একটি নির্দিষ্ট অ্যাপ্লিকেশনের লগ দেখতে চান, তাহলে আপনি অ্যাপ্লিকেশন নাম বা ID ব্যবহার করতে পারেন:
pm2 logs app.js
৪. অ্যাপ্লিকেশন রিস্টার্ট এবং স্টপ করা
যদি আপনার অ্যাপ্লিকেশনটি কোনো কারণে থেমে যায় বা আপনি ম্যানুয়ালি রিস্টার্ট করতে চান, তাহলে pm2 restart কমান্ড ব্যবহার করতে পারেন:
pm2 restart app.js
অথবা, আপনি অ্যাপ্লিকেশনটি পুরোপুরি বন্ধ করতে চাইলে pm2 stop ব্যবহার করতে পারেন:
pm2 stop app.js
এটি আপনার অ্যাপ্লিকেশনকে বন্ধ করে দেবে, তবে আবার pm2 start কমান্ড দিয়ে এটি চালু করা সম্ভব।
৫. অ্যাপ্লিকেশনটি অটোমেটিক্যালি রিস্টার্ট করা
একটি দুর্দান্ত বৈশিষ্ট্য হল যে PM2 অ্যাপ্লিকেশনটি সার্ভারের পুনরায় চালু হলে স্বয়ংক্রিয়ভাবে রিস্টার্ট করতে পারে। এটি আপনি pm2 startup কমান্ড দিয়ে কনফিগার করতে পারেন। প্রথমে কমান্ডটি রান করুন:
pm2 startup
এই কমান্ডটি আপনাকে একটি বিশেষ কমান্ড দিবে, যা আপনি টার্মিনালে রান করে সার্ভারের রিস্টার্টের পরও PM2 আপনার অ্যাপ্লিকেশনটি পুনরায় চালু করবে।
এরপর, আপনার সব পরিবর্তন সেভ করার জন্য pm2 save কমান্ডটি ব্যবহার করুন:
pm2 save
এটি সমস্ত চলমান অ্যাপ্লিকেশন এবং তাদের স্টেট সেভ করবে, যাতে সার্ভার রিস্টার্টের পর সেগুলি পুনরায় চালু হয়।
৬. অ্যাপ্লিকেশন স্কেলিং
PM2 আপনাকে আপনার অ্যাপ্লিকেশনটি স্কেল করার সুযোগও দেয়। যদি আপনার অ্যাপ্লিকেশনটির অতিরিক্ত ট্র্যাফিক থাকে, তবে আপনি একাধিক প্রক্রিয়া চালু করে আপনার অ্যাপ্লিকেশনটি স্কেল করতে পারেন। এটি করার জন্য আপনি নিচের কমান্ডটি ব্যবহার করতে পারেন:
pm2 scale app.js <number-of-instances>
যেমন, যদি আপনি অ্যাপ্লিকেশনটির 4টি ইনস্ট্যান্স চালাতে চান, তাহলে:
pm2 scale app.js 4
এটি 4টি পৃথক প্রক্রিয়া তৈরি করবে এবং লোড ব্যালান্সিংয়ের মাধ্যমে প্রতিটি প্রক্রিয়ায় রিকোয়েস্ট পাঠাবে।
৭. PM2-এর সাহায্যে অ্যাপ্লিকেশন বন্ধ করা
যদি আপনি PM2-এর মাধ্যমে চলমান অ্যাপ্লিকেশনটি সম্পূর্ণ বন্ধ করতে চান, তবে pm2 delete কমান্ডটি ব্যবহার করুন:
pm2 delete app.js
এটি অ্যাপ্লিকেশনটি বন্ধ করবে এবং PM2 এর তালিকা থেকে মুছে ফেলবে। আপনি pm2 stop ব্যবহার করলেও শুধুমাত্র অ্যাপ্লিকেশনটি থামাবে, কিন্তু তালিকা থেকে মুছে যাবে না।
PM2 হল একটি শক্তিশালী প্রসেস ম্যানেজার যা ExpressJS অ্যাপ্লিকেশন পরিচালনা ও মনিটরিংয়ের জন্য অত্যন্ত উপযোগী। এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ডে চালাতে পারেন, অ্যাপ্লিকেশন স্ট্যাটাস দেখতে পারেন, লগ চেক করতে পারেন, স্কেলিং করতে পারেন এবং অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে রিস্টার্ট করাতে পারেন। PM2-এর মাধ্যমে আপনার অ্যাপ্লিকেশনগুলো আরও স্থিতিশীল এবং স্কেলেবল হয়ে ওঠে, এবং আপনি সিস্টেম রিসোর্সের সর্বোত্তম ব্যবহার নিশ্চিত করতে পারেন।
Read more