সুপারভাইজার দিয়ে উমামি প্রক্রিয়া পরিচালনা করা
নমস্কার, আমি অযোগ্য।
Umami অফিসিয়ালভাবে pm2 দ্বারা প্রক্রিয়া ব্যবস্থাপনা সুপারিশ করা হয়, তবে আমি আরও সহজে এবং দীর্ঘকাল ধরে বিদ্যমান Supervisor ব্যবহার করে Umami এর প্রক্রিয়া ব্যবস্থাপনা করতে চাই।
সুপারভাইজার কী?
এটি প্রক্রিয়াগুলিকে ডেমনাইজ করে এবং ক্র্যাশ হলে লগ ফাইলগুলি সহজেই *.conf দিয়ে কনফিগার করা সম্ভব।
একসময় এর উন্নয়ন বন্ধ হয়ে গিয়েছিল বলে মনে হয়, কিন্তু Systemd Free আন্দোলনের কারণে এটি আবার কিছুটা জনপ্রিয়তা লাভ করেছে এবং মূলত অন্যান্য init এ চলমান প্রক্রিয়াগুলিকে Supervisor দিয়ে ডেমনাইজ করে পরিচালনা করা সম্ভব।
আমি এটি ইতিমধ্যেই ইনস্টল করেছি, তাই ইনস্টলেশন পদ্ধতি বাদ দিচ্ছি।
সেটিংস
umami.conf হিসাবে একটি কনফিগারেশন ফাইল তৈরি করুন।
sudo vim /etc/supervisor/conf.d/umami.conf
আমি নিম্নলিখিতভাবে লিখেছি:
[program`umami]
command=npm start
directory=/var/www/html/umami ; অ্যাপ্লিকেশন এর ডিরেক্টরি
autostart=true ; সার্ভার চালু হলে স্বয়ংক্রিয়ভাবে প্রক্রিয়া শুরু করুন
autorestart=true ; প্রক্রিয়া শেষ হলে স্বয়ংক্রিয়ভাবে পুনরায় শুরু করুন
stderr_logfile=/var/log/umami.err.log ; স্ট্যান্ডার্ড এরর লগ ফাইলের অবস্থান
stderr_logfile_maxbytes=1MB ; লগ ফাইলের সর্বোচ্চ আকার
stdout_logfile=/var/log/umami.out.log ; স্ট্যান্ডার্ড আউটপুট লগ ফাইলের অবস্থান
stdout_logfile_maxbytes=1MB ; লগ ফাইলের সর্বোচ্চ আকার
environment=DATABASE_URL="YourDB",APP_SECRET="YourSecret",PORT="YourPort",HOSTNAME="YourHost" ;
user=test_user ; যে ব্যবহারকারী দ্বারা চালানো হবে
এখন যদিও দেরি হয়ে গেছে, তবে আসলে /var/www/umami এ স্থাপন করা উচিত ছিল...
চালানো
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start umami
sudo supervisorctl status umami
করলে
umami RUNNING pid 801, uptime 0`19`12
প্রদর্শিত হলে, এটি সফলভাবে চলছে। যদি এটি ব্যর্থ হয়, তবে
view /var/log/umami.err.log
view /var/log/umami.out.log
দিয়ে শুরু না হওয়ার কারণ পরীক্ষা করুন।
সুপারভাইজার ভালো!
*.conf ফাইল দিয়ে সহজেই পরিচালনা করা যায়, যা খুব ভালো।
তবে pm2 মেমরি ব্যবহারের হারও দেখায়, কিন্তু আমি ভবিষ্যতের npm সম্পর্কিত লাইব্রেরি নির্ভরতা নিয়ে উদ্বিগ্ন, তাই supervisord এর মতো সহজ হলে ব্যক্তিগতভাবে আমার বেশি পছন্দ।
এবং, প্রক্রিয়া ব্যবস্থাপনার জন্য বিশেষভাবে JavaScript পরিবেশে চালানোর প্রয়োজনীয়তা আমি অনুভব করি না। তাহলে আবার দেখা হবে।
শুভেচ্ছান্তে।