जैसा कि आप शायद जानते हैं, डिफ़ॉल्ट रूप से जब आप एक डेबियन या उबंटू आधारित प्रणाली पर एक पैकेज स्थापित करते हैं, अगर पैकेज में एक सेवा शामिल है, तो उस सेवा को आम तौर पर सक्षम किया जाएगा और पैकेज स्थापित करते समय स्वचालित रूप से शुरू हो जाएगा।
यह मेरे लिए एक समस्या है।
मैंने खुद को LXC कंटेनरों के निर्माण के लिए टेम्पलेट्स का प्रबंधन करने की आवश्यकता पाई है। कई कंटेनर हैं, जिनमें से प्रत्येक में डेबियन या उबंटू रिलीज़ होता है। (रेड हैट-आधारित कंटेनर भी हैं, लेकिन वे यहां प्रासंगिक नहीं हैं।)
/var/lib/libvirt/filesystems/debian6_template
/var/lib/libvirt/filesystems/debian7_template
/var/lib/libvirt/filesystems/ubuntu1004_template
/var/lib/libvirt/filesystems/ubuntu1204_template
कभी-कभी मैं पाऊंगा कि टेम्प्लेट में एक लापता पैकेज है या कुछ अन्य बदलाव की आवश्यकता है, इसलिए मैं पैकेज को स्थापित करने के लिए उन पर विचार करूंगा। दुर्भाग्य से जब मैं ऐसा करता हूं, तो मैं पैकेज की सेवा की कई प्रतियों के साथ चल रहा हूं!
उदाहरण के अनुसार, मैंने पाया कि टेम्पलेट्स में एक सैसलॉग डेमॉन नहीं था, इसलिए मैंने एक स्थापित किया:
for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do
chroot $template apt-get install rsyslog
done
और तुरंत rsyslog की चार प्रतियों के साथ चल रहा है। Exim4 की दो प्रतियों का उल्लेख नहीं। ऊप्स!
मैं कहीं पढ़ता हूं (हालांकि अब मैं इसे दोबारा नहीं पा सकता) चेरोट में चलने के दौरान सेवाओं को शुरू करने के लिए नहीं माना जाता है, लेकिन यह स्पष्ट रूप से यहां नहीं है।
एक संभावित व्यवहार्य गंदा हैक कॉल के लिए अस्थायी रूप से विभिन्न आदेशों की जगह लेता है जो वास्तव में सेवाएं शुरू करते हैं, जैसे कि start-stop-daemon
और initctl
, हालांकि यह बहुत अधिक काम है जो मैं वास्तव में करना चाहता था। अगर मेरे पास कोई अन्य विकल्प नहीं है, हालांकि ...
यहां आदर्श समाधान डेबियन-आधारित सिस्टम के लिए इस बकवास को रोकने के लिए होगा, लेकिन यह असफल हो सकता है कि, शायद एक अस्पष्ट या अनिर्दिष्ट कमांड लाइन विकल्प के लिए apt-get
?
यदि यह स्पष्ट नहीं था, तो मैं वास्तव में यदि संभव हो तो टेम्प्लेट के बाहर टेम्पलेट्स के प्रबंधन से संबंधित कुछ भी रखना चाहता हूं ।