सवाल / Etc / init / और /etc/init.d/ के बीच क्या अंतर है?


के बीच क्या अंतर है /etc/init/ तथा /etc/init.d/?

अधिक आम तौर पर, इसका क्या अर्थ है .d प्रत्यय एक निर्देशिका को व्यक्त करते हैं?


217
2017-10-01 22:59


मूल




जवाब:


/etc/init.d सिस्टम वी इनिट टूल्स (SysVinit) द्वारा उपयोग की जाने वाली स्क्रिप्ट शामिल हैं। लिनक्स के लिए यह पारंपरिक सेवा प्रबंधन पैकेज है, जिसमें शामिल है init कार्यक्रम (पहली प्रक्रिया जो कि कर्नेल प्रारंभ करने के बाद चलती है) के साथ-साथ सेवाओं को शुरू करने और बंद करने और उन्हें कॉन्फ़िगर करने के लिए कुछ आधारभूत संरचना भी चलाती है। विशेष रूप से, फाइलें /etc/init.d शेल स्क्रिप्ट हैं जो प्रतिक्रिया देते हैं start, stop, restart, और (जब समर्थित है) reload एक विशेष सेवा का प्रबंधन करने के लिए आदेश। इन स्क्रिप्ट को किसी अन्य ट्रिगर (आमतौर पर एक प्रतीकात्मक लिंक की उपस्थिति के माध्यम से सीधे या (आमतौर पर) लगाया जा सकता है /etc/rc?.d/)।

/etc/init अपस्टार्ट द्वारा उपयोग की जाने वाली विन्यास फाइलें हैं। अपस्टार्ट उबंटू द्वारा चैंपियन किया गया एक युवा सेवा प्रबंधन पैकेज है। में फ़ाइलें /etc/init विन्यास फाइलें बताती हैं कि कैसे और कब करें start, stop, reload विन्यास, या क्वेरी status एक सेवा का सुस्त के रूप में, उबंटू SysVinit से Upstart में संक्रमण कर रहा है, जो बताता है कि क्यों कई सेवाएं SysVinit स्क्रिप्ट के साथ आती हैं भले ही अपस्टार्ट कॉन्फ़िगरेशन फ़ाइलों को प्राथमिकता दी जाती है। वास्तव में, SysVinit स्क्रिप्ट को अपस्टार्ट में एक संगतता परत द्वारा संसाधित किया जाता है।

.d निर्देशिका नामों में आमतौर पर एक निर्देशिका को इंगित करता है जिसमें किसी विशेष स्थिति के लिए कई कॉन्फ़िगरेशन फ़ाइलें या स्क्रिप्ट शामिल होती हैं (उदा। /etc/apt/sources.list.d वर्चुअल बनाने के लिए समेकित फ़ाइलें शामिल हैं sources.list; /etc/network/if-up.d नेटवर्क में निष्पादित स्क्रिप्ट शामिल हैं मैंnterऐस सक्रिय है)। इस संरचना का आमतौर पर उपयोग किया जाता है जब निर्देशिका में प्रत्येक प्रविष्टि एक अलग स्रोत द्वारा प्रदान की जाती है, ताकि प्रत्येक पैकेज स्वयं को संदर्भित करने के लिए एक कॉन्फ़िगरेशन फ़ाइल को पार्स किए बिना अपना स्वयं का प्लग-इन जमा कर सके। इस मामले में, यह होता है कि "init" निर्देशिका के लिए एक तार्किक नाम है, SysVinit पहले आया था और इस्तेमाल किया init.d, और अपस्टार्ट सादा इस्तेमाल किया init एक समान उद्देश्य के साथ एक निर्देशिका के लिए (यह अधिक "मुख्यधारा" होता, और शायद कम अहंकारी होता, अगर वे इस्तेमाल करते थे /etc/upstart.d बजाय)।

¹ initrd गिनती नहीं है


217
2017-10-01 23:28



गूढ़ ऐतिहासिक नोट: द .d सिस्टम वी के साथ दर्ज निर्देशिकाएं। यह एक परेशान नोटेशन था और आखिरकार शायद एक व्यक्ति का विचार जो कोडबेस में आया और छोड़ नहीं सका। उदाहरण के लिए, यदि आप ऐसा सोचते हैं cat यह कार्य करने के लिए एक बुरा नाम है, कल्पना करें कि सिस्टम में कितनी फाइलें आपको इसे बदलने के लिए स्पर्श करना होगा। - msw
सिस्टम पर, जिसमें दोनों निर्देशिकाएं हैं, जो अपस्टार्ट और SysVinit का उपयोग किया जाता है? क्या जांचने का कोई तरीका है? - asheeshr
@AesheshR जांचें कि क्या एक पैकेज कहा जाता है upstart या sysvinit। और हाल के संस्करणों में, यह हो सकता है systemd साथ ही (जब मैंने अपना जवाब लिखा था तब उबंटू के लिए अस्तित्व में नहीं था)। यह जो भी पैकेज प्रदान करता है /sbin/init (dpkg -S /sbin/init)। - Gilles
एडब्ल्यूएस उबंटू उदाहरण पर मैं (बिट्टनामी से) का उपयोग कर रहा हूं, यह है upstart पैकेज जो / sbin / init प्रदान करता है (भाग गया dpkg -S /sbin/init)। लेकिन बिट्टनामी ने अपनी स्क्रिप्ट को /etc/init.d निर्देशिका में रखा है। क्या यह विरोधाभासी w / आपका उत्तर @AesheshR से ऊपर नहीं है? धन्यवाद। - Sabuncu
@Sabuncu यह एक उदाहरण है "SysVinit स्क्रिप्ट को अपस्टार्ट में संगतता परत द्वारा संसाधित किया जाता है"। - Gilles


".D" आमतौर पर एक निर्देशिका नाम में जोड़ा जाता है यह इंगित करने के लिए कि एक स्क्रिप्ट या एक कॉन्फ़िगरेशन फ़ाइल द्वारा प्रबंधित किया गया (या क्या हो सकता था) सुविधा के लिए कई फ़ाइलों में विभाजित किया गया है, लेकिन जो एक साथ शामिल किया जाना चाहिए, या निष्पादित किया जाना चाहिए।

उदाहरण के लिए, /etc/apache/conf.d/ या /etc/apt/sources.d/

ऐसे मामलों में जहां यह महत्वपूर्ण है कि उन्हें किस क्रम में शामिल / निष्पादित किया जाना चाहिए, इन निर्देशिकाओं में फ़ाइलें कभी-कभी "00-डिफ़ॉल्ट" या "80-उपयोगकर्ता" जैसी संख्या से शुरू होती हैं ताकि वे सही क्रम में निष्पादित हो सकें।

के मामले में /etc/init.d/ यह इंगित करता है कि "init.d" में लिपियों को निष्पादित किया जाना चाहिए। आजकल, आधुनिक ऑपरेटिंग सिस्टम की इनिट सिस्टम उसमें थोड़ा अधिक शामिल है, लेकिन निर्देशिका का नाम अभी भी वहां है।


26
2018-05-10 02:51



हो सकता है .d इसका मतलब है कि यह 'डेमॉन' प्रक्रिया से संबंधित है जिसे आमतौर पर बूट-टाइम पर शुरू किया जाता है।
डीडी निश्चित रूप से निर्देशिका के लिए है, डेमॉन नहीं। - Martin


जैसा कि आप इंगित करते हैं, ".d" नामकरण परेशान और अजीब है, और वास्तव में किसी भी आधुनिक प्रणाली में कोई जगह नहीं है - आप देखेंगे कि अधिकांश आधुनिक सेवाओं ने इसे छोड़ दिया है।

निर्देशिका का कारण है /etc/init और नहीं /etc/upstart ऐसा इसलिए है क्योंकि उपस्टार्ट प्रोजेक्ट का नाम है, वास्तविक स्थापित बाइनरी अभी भी है /sbin/init इस प्रकार इसकी कॉन्फ़िगरेशन के लिए ऐसा नाम नहीं होगा जो बाइनरी से मेल नहीं खाता।


12
2017-10-13 01:59



यह गलत है, उदाहरण देखें udev के rules.d, ज़ोरग अपेक्षाकृत हाल ही में xorg.conf.dबहुत पुराना नहीं है /etc/profile.d आदि.. - Ruslan