सुपरवाइजर के साथ उमामी प्रक्रिया प्रबंधन
नमस्ते, मैं अक्षम हूँ।
आधिकारिक Umami pm2 के साथ प्रक्रिया प्रबंधन की सिफारिश करता है, लेकिन मैं Umami के लिए प्रक्रिया प्रबंधन को अधिक आसानी से, पुराने Supervisor का उपयोग करके करना चाहूँगा।
सुपरवाइजर क्या है?
प्रक्रियाओं को डेमॉन के रूप में चलाया जा सकता है और क्रैश होने पर लॉग फ़ाइल सेटिंग्स को *.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 वातावरण में चलाने की आवश्यकता महसूस नहीं होती है। तो, फिर मिलेंगे।
सादर।