मैं linux की दुनिया में पूरी तरह से नया हूं, इसलिए जो कुछ भी गलत हो सकता है उसके लिए खेद है।
मैं एक डेबियन 8.5 मशीन पर एक मोंगो डीबी चलाने की कोशिश कर रहा हूं। जब मैंने पैकेज स्थापित किया (percona.com से निर्मित), तो मैंने निम्नलिखित फाइलों पर ध्यान दिया है:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
/Etc/init.d/mongod के बारे में
मैं समझता हूं कि इसे update-rc.d
बूट (जब तक यह पंजीकृत है ) बूट पर / अन्य विशेष प्रणाली राज्यों में (इस पर तकनीकी प्राप्त नहीं करना चाहते हैं, मैं बहुत सारे informations को अवशोषित कर रहा हूं और यह कम महत्वपूर्ण लगता है)।
यह मेरे लिए पूरी तरह से ठीक है। स्क्रिप्ट बहुत सारे इनिशियलाइज़ेशन को अंजाम देती है और अंत में मोंगो डेमन को लॉन्च करती है। ऐसा लगता है कि "ट्रिगर्स" के लिए शुरुआत, रोक, पुनः आरंभ, आदि और जहां तक मैं समझता हूं कि मैं उन लोगों को ट्रिगर कर सकता हूं sudo service mongod <action>
।
/Lib/systemd/system/mongod.service के बारे में
यह फ़ाइल एक ही काम करती है (यानी मानगो चलाते हैं), लेकिन कम विन्यास के साथ, एक्सेस्टार्ट पैरामीटर में सिर्फ एक पंक्ति:
[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target
जहां तक मैं समझता हूं कि इससे ट्रिगर किया जा सकता है sudo systemctl start mongod
।
मुझे समझ में नहीं आता है कि यह बूट पर कहा जाता है या नहीं।
मुझे समझ में नहीं आता कि इन 'सेवा' फ़ाइलों में से दो की आवश्यकता क्यों है, और मैं एक से छुटकारा कैसे पा सकता हूं (संभवतः / in / lib / systemd, क्योंकि यह बहुत सरल है)।
मुझे समझ नहीं आता कि दोनों के बीच कोई संबंध है या नहीं।
मैंने पढ़ा है कि स्क्रिप्ट
systemctl
परinit.d
भी काम करता है, और इस मामले में मुझे समझ नहीं आ रहा है कि दोनों में से कौन सी फाइल ट्रिगर होगीsystemctl mongod start
।
मुझे लगता है कि कुछ अतिरेक है और मुझे दो में से एक ही रास्ता चुनना चाहिए। और मैं यह सुनिश्चित करना चाहता हूं कि यह हो
- बूट पर बुलाया
- कमांड द्वारा कॉल करने योग्य (जैसे
service
याsystemctl
)।
क्या आप मुझे अपना दिमाग साफ़ करने में मदद कर सकते हैं? कुछ टिप्पणियों की मदद से मैं शायद सवाल को फोकस और संकीर्ण कर सकता हूं।
systemctl disable mongod
:; फिर नाम बदलकर mongod.service को mongod-backup.service; तबsystemctl daemon-reload
। क्या आपको लगता है कि यह सही था? मैंने पढ़ा है कि आपको / lib / systemd / system / में फ़ाइलों को संशोधित नहीं करना चाहिए, लेकिन नाम बदले बिना, systemctl init.d स्क्रिप्ट को अनदेखा करता रहा।