Ubuntu 10.10 पर SystemD के डेमन के रूप में MongoDB सेवा चलाएं


12

MongoDB सिर्फ उबंटू लॉन्ग टर्म सपोर्ट (LTS) के संस्करणों का समर्थन करता है। अंतिम उबंटू 14.04 एलटीएस है, जहां इनिट प्रक्रिया को कैन्यनिकल के अपस्टार्ट मालिकाना द्वारा प्रबंधित किया जाता है। हालाँकि मैं Linux मानक SystemD init प्रक्रिया के साथ Ubuntu 15.10 का उपयोग कर रहा हूँ। इसलिए मैं बूट पर MongoDB सेवा शुरू नहीं कर सकता।

जब मैंने सेवा की स्थिति पढ़ी या इसे शुरू करने का प्रयास किया, तो संदेश "लोड करने में विफल" दिखा:

> systemctl status mongod
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
> sudo systemctl start mongod
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

मैं आधिकारिक MongoDB 3.2 सामुदायिक संस्करण (mongodb-org) https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/ से चला रहा हूं, न कि Ubuntu से MongoDB 2.6 मेटा-पैकेज (मंगोलोड) भंडार।

> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
> echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
> sudo apt-get update
> sudo apt-get install -y mongodb-org

किसी को पता है कि MongoDB को SystemD के साथ कैसे शुरू किया जाए?


1
मेरी समस्या एक कस्टम कॉन्फ़िग फाइल थी जो मोंगॉड को फोर्क नहीं कर रही थी, यहाँ डिफॉल्ट मोंगॉड से स्निपेट है जो मुझे याद आ रही थी, प्रक्रियाप्रबंधन: कांटा: सच pidFilePath: /var/run/modod.pid
Pykler

जवाबों:


25

मैं बूट पर SystemD के साथ MongoDB सेवा शुरू करने में कामयाब रहा:

मैंने आधिकारिक मेटा-पैकेज (mongodb-org) v3.2 की स्थापना रद्द की, फिर मैंने Ubuntu रिपॉजिटरी से मेटा-पैकेज (mongodb) v2.6 स्थापित किया:

> sudo apt-get remove mongodb-org
> sudo apt-get install mongodb

सेवा विन्यास फ़ाइल बनाएँ जैसा कि नीचे दिखाया गया है:

> cd /lib/systemd/system
> sudo touch mongodb.service
> sudo nano mongodb.service
[Unit]
Description=An object/document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target

सूची में सत्यापित करें कि यदि सेवा नीचे कमांड का उपयोग कर सक्षम या अक्षम है:

> systemctl list-unit-files --type=service
...
mongodb.service             disabled
...

यदि यह अक्षम है या सूची में नहीं है, तो इसे सक्षम करें:

> sudo systemctl enable mongodb.service

फिर से जांचें:

> systemctl list-unit-files --type=service 
...
mongodb.service             enabled
...

अब आप SystemD init प्रक्रिया पर सेवा का प्रबंधन कर सकते हैं:

> systemctl status mongodb
> sudo systemctl stop mongodb
> sudo systemctl start mongodb
> sudo systemctl restart mongodb

का आनंद लें!


सेवा परिभाषा के कुछ हिस्सों के लिए एक पॉइंटर के लिए askubuntu.com/a/617869/43344 देखें जिसे आपने याद किया था। यह भी ध्यान रखें कि सेवा इकाइयों की आपूर्ति की और स्थानीय व्यवस्थापक द्वारा लिखित नहीं करना चाहिए में जाना /lib
जेडीबीपी

1
यही कारण है कि सेवा इकाई, विहित द्वारा लिखा गया था एक स्थानीय व्यवस्थापक द्वारा नहीं है, तो वे निवासी होना आवश्यक है में /lib। सेवा की परिभाषा के हिस्से सेवा शुरू करने के लिए पर्याप्त हैं, अतिरिक्त सेटिंग्स महत्वपूर्ण प्रभाव नहीं लेती हैं, इसलिए उन्हें पूरक माना जाता है। यदि आप PIDFile=/var/run/mongodb/mongod.pidलाइन और runनिर्देश को ExecStart=लाइन पर जोड़ते हैं , तो आपको एक त्रुटि मिलती है, क्योंकि मैं (mongodb) मेटा-पैकेज 2.6 का उपयोग कर रहा हूं, न कि (mongodb-org) मेटा-पैकेज 3.2।
फर्नांडो सैन्टुकी

1
मुझे वोट क्यों दिया गया, मैंने अपवित्र किया। मुझे भी इसी तरह के मुद्दे का सामना करना पड़ा और इस जवाब ने मदद की, धन्यवाद।
टीएन डू

यह उबंटू 14 से 18 तक चलने में सुपर सहायक था, मेरा एकमात्र जोड़ यह होगा कि मुझे डेटा और लॉग निर्देशिकाओं chownको फिर से बनाना होगा और इससे पहले कि मॉन्गोड व्यवस्थित रूप से शुरू होगा। कुछ भी स्थापित डॉक्स ने मुझे नहीं बताया होगा लेकिन अगर यह मददगार हो तो!
टॉम जे नोवेल

6

MongoDB रिपॉजिटरी से डिफॉल्ट इंस्टाल होने पर, मेंडॉग सर्विस का ऑटोमैटिक स्टार्टअप करने के लिए , आपको केवल system.d सर्विस को इनेबल करना है:

systemctl enable mongod.service(मोंगो डी सेवा के नाम पर ध्यान दें , मोंडोडब नहीं )

नोट: यह Debian / GNU Jessie 8.x पर systemd और Ubuntu Xerus 16.04 LTS दोनों के साथ परीक्षण किया गया है।


यह Ubuntu Xerus 16.04 LTS के लिए भी सही है। आधिकारिक रेपो से स्थापित करने के बाद, आपको सिस्टमड सर्विस यूनिट को सक्षम करने की आवश्यकता है! मैंने अभी एक और उदाहरण इंस्टालेशन के साथ इसकी पुष्टि की है ... :)
स्टैमस्टर 12

1
फ़ाइल /lib/systemd/system/mongod.serviceमेरे Ubuntu 16.04 में मौजूद है
ज्योतिमान सिंह

हां, सिस्टमड यूनिट की परिभाषा है, लेकिन यह अक्षम है, इसलिए जब भी आप अपने उदाहरण को रिबूट करते हैं, तो इसे स्वचालित रूप से शुरू करने के लिए आपको इसे सक्षम करने की आवश्यकता होती है।
स्टैमस्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.