उत्पादन सर्वर पर Node.js अनुप्रयोगों को प्रबंधित करने के लिए अक्सर एक प्रक्रिया प्रबंधक की आवश्यकता होती है ताकि यह सुनिश्चित किया जा सके कि आपके एप्लिकेशन सुचारू रूप से चलें और क्रैश से स्वचालित रूप से पुनर्प्राप्त हों। PM2 Node.js के लिए सबसे लोकप्रिय प्रक्रिया प्रबंधकों में से एक है, जो प्रक्रिया निगरानी, लॉग प्रबंधन और क्लस्टर मोड जैसी शक्तिशाली सुविधाएँ प्रदान करता है।
यदि आप Google क्लाउड उबंटू इंस्टेंस पर कोई एप्लिकेशन चला रहे हैं, तो आपको ऐसी स्थिति का सामना करना पड़ सकता है जहां PM2 प्रक्रियाएं केवल उस उपयोगकर्ता को दिखाई देती हैं जिसने उन्हें शुरू किया था। यदि आपके सर्वर में एकाधिक उपयोगकर्ता हैं, जैसे डेवलपर्स, सिस्टम प्रशासक, या स्वचालित परिनियोजन स्क्रिप्ट, तो यह समस्याग्रस्त हो सकता है। इस ब्लॉग पोस्ट में, हम PM2 को एक सिस्टम-व्यापी सेवा के रूप में कॉन्फ़िगर करने के चरणों के बारे में जानेंगे, जिससे यह सर्वर पर सभी उपयोगकर्ताओं के लिए सुलभ हो जाएगा।
डिफ़ॉल्ट रूप से, PM2 उस उपयोगकर्ता के अंतर्गत एक प्रक्रिया के रूप में चलता है जिसने इसे शुरू किया है। इसका मतलब यह है कि यदि आप एक उपयोगकर्ता के रूप में अपने सर्वर में SSH करते हैं और PM2 प्रक्रिया शुरू करते हैं, तो वह प्रक्रिया SSH के माध्यम से लॉग इन करने वाले किसी अन्य उपयोगकर्ता को दिखाई नहीं देगी। इसे संबोधित करने के लिए, हम सिस्टम स्तर पर एक सेवा के रूप में चलाने के लिए PM2 को कॉन्फ़िगर कर सकते हैं। इस दृष्टिकोण के कई फायदे हैं:
शुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित हैं:
यह सुनिश्चित करने के लिए कि सभी उपयोगकर्ता PM2 तक पहुंच सकें, इसे विश्व स्तर पर स्थापित किया जाना चाहिए। आप npm का उपयोग करके विश्व स्तर पर PM2 स्थापित कर सकते हैं:
sudo npm install -g pm2
यह कमांड वैश्विक एनपीएम निर्देशिका में पीएम2 स्थापित करता है, जिससे यह पूरे सिस्टम में उपलब्ध हो जाता है।
इसके बाद, हमें एक सेवा के रूप में चलाने के लिए PM2 सेट अप करना होगा। यह PM2 को किसी विशिष्ट उपयोगकर्ता सत्र से बंधे रहने के बजाय सिस्टम स्तर पर प्रक्रियाओं को प्रबंधित करने की अनुमति देगा।
PM2 के लिए आवश्यक स्टार्टअप स्क्रिप्ट तैयार करने के लिए निम्नलिखित कमांड चलाएँ:
pm2 startup
यह कमांड आपके उबंटू इंस्टेंस (आमतौर पर सिस्टमडी) द्वारा उपयोग किए जाने वाले इनिट सिस्टम का पता लगाता है और एक कमांड प्रदान करता है जिसे सिस्टम-वाइड सेवा के रूप में पीएम2 को कॉन्फ़िगर करने के लिए सूडो के साथ निष्पादित करने की आवश्यकता होती है। आउटपुट कुछ इस तरह दिखेगा:
[PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u--hp /home/
यहां, को उस उपयोगकर्ता के उपयोगकर्ता नाम से प्रतिस्थापित किया जाना चाहिए जिसने शुरुआत में पीएम2 सेट किया था। यह सुनिश्चित करता है कि PM2 प्रक्रिया सही उपयोगकर्ता की होम निर्देशिका से जुड़ी हुई है।
पिछले चरण के आउटपुट में दिए गए कमांड को कॉपी करें और इसे निष्पादित करें। उदाहरण के लिए:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe
यह कमांड एक सिस्टमडी सेवा बनाता है जो सही पर्यावरण चर और उपयोगकर्ता संदर्भ के साथ पीएम2 शुरू करता है।
यदि आपके पास पहले से ही PM2 के तहत चलने वाली प्रक्रियाएं हैं जिन्हें आप रिबूट के दौरान जारी रखना चाहते हैं, तो आपको वर्तमान प्रक्रिया सूची को सहेजना होगा। यह एक डंप फ़ाइल बनाता है जिसका उपयोग सिस्टम प्रारंभ होने पर प्रक्रियाओं को पुनर्स्थापित करने के लिए PM2 करेगा:
pm2 save
pm2 सेव कमांड प्रबंधित प्रक्रियाओं की वर्तमान सूची को JSON फ़ाइल में ~/.pm2/dump.pm2 में सहेजता है। PM2 प्रारंभ होने पर यह फ़ाइल स्वचालित रूप से लोड हो जाती है, जिससे यह सुनिश्चित होता है कि रीबूट के बाद आपके एप्लिकेशन पुनर्जीवित हो गए हैं।
यह सुनिश्चित करने के लिए कि सिस्टम बूट होने पर PM2 स्वचालित रूप से प्रारंभ हो जाए, आपको सेवा सक्षम करने की आवश्यकता है:
sudo systemctl enable pm2-johndoe
johndoe को उचित उपयोक्तानाम से बदलें। यह कमांड PM2 सेवा को सक्षम बनाता है, यह सुनिश्चित करते हुए कि जब भी सिस्टम बूट हो तो यह शुरू हो जाए।
अब जब PM2 को एक सिस्टम-व्यापी सेवा के रूप में कॉन्फ़िगर किया गया है, तो इसे सर्वर पर किसी भी उपयोगकर्ता के लिए पहुंच योग्य होना चाहिए। प्रक्रियाओं की स्थिति जांचने या उन्हें सूचीबद्ध करने के लिए, कोई भी उपयोगकर्ता चला सकता है:
pm2 list
यह कमांड सिस्टम-व्यापी पीएम2 सेवा द्वारा प्रबंधित प्रक्रियाओं की सूची प्रदर्शित करेगा, चाहे कोई भी उपयोगकर्ता लॉग इन हो।
यदि आप चाहते हैं कि PM2 लॉग एकाधिक उपयोगकर्ताओं द्वारा पहुंच योग्य हों, तो आपको साझा निर्देशिका में लॉग संग्रहीत करने के लिए फ़ाइल अनुमतियों को समायोजित करने या PM2 को कॉन्फ़िगर करने की आवश्यकता हो सकती है। यह सुनिश्चित करता है कि सभी उपयोगकर्ता PM2 के तहत चलने वाली प्रक्रियाओं के लिए लॉग देख और प्रबंधित कर सकते हैं।
लॉग फ़ाइल निर्देशिका को बदलने के लिए, आप निम्नलिखित पर्यावरण चर का उपयोग कर सकते हैं:
export PM2_HOME=/path/to/shared/pm2/home
इसे सभी सत्रों में लगातार बनाए रखने के लिए, इसे /etc/environment जैसी वैश्विक कॉन्फ़िगरेशन फ़ाइल में सेट करें।
एक बार जब PM2 एक सेवा के रूप में स्थापित हो जाता है, तो उपयोगकर्ता मानक PM2 कमांड का उपयोग करके प्रक्रियाओं का प्रबंधन कर सकते हैं। हालाँकि, अनुमतियों और उपयोगकर्ता भूमिकाओं के आधार पर, कुछ कमांडों को सूडो एक्सेस की आवश्यकता हो सकती है। उदाहरण के लिए:
sudo pm2 list
यह कमांड सिस्टम-व्यापी पीएम2 सेवा द्वारा प्रबंधित प्रक्रियाओं को सूचीबद्ध करेगा, जिससे प्रशासकों और डेवलपर्स के लिए सर्वर प्रबंधन पर सहयोग करना आसान हो जाएगा।
आपके उबंटू इंस्टेंस पर सिस्टम-व्यापी सेवा के रूप में PM2 की स्थापना यह सुनिश्चित करती है कि आपके Node.js एप्लिकेशन सर्वर पर सभी उपयोगकर्ताओं के लिए मजबूती से प्रबंधित और पहुंच योग्य हैं। यह सेटअप एकाधिक उपयोगकर्ताओं या स्वचालित परिनियोजन प्रक्रियाओं वाले वातावरण में विशेष रूप से उपयोगी है, जो अनुप्रयोगों को प्रबंधित करने का एक विश्वसनीय और केंद्रीकृत तरीका प्रदान करता है।
इस गाइड में उल्लिखित चरणों का पालन करके, आप यह सुनिश्चित कर सकते हैं कि पीएम2 सभी उपयोगकर्ताओं के लिए उपलब्ध है, सिस्टम रीबूट के बाद आपकी प्रक्रियाएं स्वचालित रूप से पुनरारंभ हो जाती हैं, और लॉग आसानी से पहुंच योग्य होते हैं। यह न केवल सर्वर प्रबंधन को सरल बनाता है बल्कि उत्पादन में आपके अनुप्रयोगों की विश्वसनीयता भी बढ़ाता है।
हैप्पी कोडिंग!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3