केवल एक init सिस्टम एक बार में सक्रिय हो सकता है। 16.04 को, यह सिस्टमड है।
कई इनिट सिस्टम के लिए फाइलों के साथ कई पैकेज शिप होते हैं, इसलिए उन्हें विभिन्न ओएस पर कई इनिट सिस्टम के साथ प्रबंधित किया जा सकता है। उबंटू पर, कभी-कभी कई इनिट सिस्टम के लिए स्क्रिप्ट स्थापित हो जाती हैं, भले ही वे सभी एक ही समय में उपयोग नहीं की जाती हों।
नए इनिट सिस्टम पुराने लोगों के साथ संगतता बनाए रखने की कोशिश करते हैं। विशेष रूप से, सिस्टमड अपस्टार्ट और SysV इनिट स्क्रिप्ट दोनों के साथ संगतता बनाए रखने की कोशिश करता है।
जिस "init.d" स्क्रिप्ट का आपने उल्लेख किया है, वह "SysV" init स्क्रिप्ट है, न कि अपस्टार्ट स्क्रिप्ट। इसके अलावा, "SysV" init स्क्रिप्ट्स केवल बूट पर शुरू की जाएंगी, यदि उन्हें "/etc/rc5.d" जैसी निर्देशिका से सहानुभूति दी जाए। आपको वह नेटवर्क मैनेजर मिल जाएगा नहीं है एक सिमलिंक वहाँ स्थापित की है।
यह समझने के लिए कि systemd
पुरानी "SysV" init स्क्रिप्ट को कैसे प्रबंधित करता है, देखें कि systemd /etc/init.d scirpts का उपयोग कैसे करता है?।
अब, इस सवाल का जवाब देने के लिए कि यह "सेवा नेटवर्क-प्रबंधक पुनरारंभ" के साथ नेटवर्क प्रबंधक को पुनरारंभ करने के लिए क्यों काम करता है। service
आदेश दोनों कल का नवाब स्क्रिप्ट और SysV init स्क्रिप्ट के साथ प्रयोग किया जाता है, पूर्व पसंद करते हैं। नेटवर्क मैनेजर में 16.04 पर एक अपस्टार्ट स्क्रिप्ट भी है/etc/init/network-manager.conf
।
यदि आप के आउटपुट की समीक्षा करते हैं sudo strace service network-manager restart
, तो आप समझ सकते हैं कि क्या हो रहा है। सबसे पहले, आउटपुट दिखाता systemctl
है जिसे कॉल किया जा रहा है, यह दर्शाता है कि कमांड को सिस्टमड पर पुनर्निर्देशित किया जा रहा है। सबसे पहले, इसके खुलने के तुरंत बाद /usr/bin/service
, आप देख सकते हैं कि यह फ़ाइल में शेल स्क्रिप्ट के रूप में पढ़ना शुरू करता है:
open("/usr/sbin/service", O_RDONLY) = 3
...
read(10, "#!/bin/sh\n\n#####################"..., 8192) = 8192
अब जब हम जानते हैं कि service
यह एक शेल स्क्रिप्ट है, तो हम इसके सोर्स कोड की जांच कर सकते हैं। स्रोत कोड में, हम पाते हैं कि is_systemd
पता लगाया और सेट किया गया है। सिस्टमड केस के लिए, आप देख सकते हैं कि कमांड को फिर से लिखा जाता है systemctl restart network-manager
।
तो जबकि तीन init सिस्टम में सह-अस्तित्व है और कुछ संगतता है, जटिलता की परतें हैं। आगे जो हो रहा है, उसकी जटिलता को कम करने के लिए, सिस्टम यूनिट फ़ाइलों और systemctl
सेवाओं को प्रबंधित करने के लिए टूल का उपयोग करना सबसे अच्छा है ।