उबंटू का उपयोग करता है Upstart
पारंपरिक के बजाय init
प्रणाली। Upstart init से अधिक मजबूत है, लेकिन यह थोड़ा अधिक जटिल है init
।
इसके विपरीत, अपस्टार्ट, घटना आधारित है। एक "घटना" "बूटिंग" जैसा कुछ हो सकता है ... या यह बहुत अधिक विशिष्ट हो सकता है, जैसे "नेटवर्क अभी उपयोग करने के लिए तैयार है"। आप निर्दिष्ट कर सकते हैं कि कौन सी स्क्रिप्ट किन घटनाओं पर निर्भर करती है। जब भी सीपीयू उपलब्ध हो, तब तक किसी भी घटना का इंतजार नहीं कर सकता।
इस घटना-आधारित प्रणाली का एक और फायदा है: आप सिस्टम के उठने और चलने के बाद भी सैद्धांतिक रूप से इसका उपयोग कर सकते हैं। अपस्टार्ट को अंततः बाहरी उपकरणों जैसे कि थंब ड्राइव (वर्तमान में udev और hal द्वारा संभाला जाता है), या विशिष्ट समय पर प्रोग्राम चलाने (वर्तमान में क्रोन द्वारा नियंत्रित) जैसे कार्यों को संभालने के लिए स्लेट किया जाता है।
जैसा कि आपको अभी पता होना चाहिए, एक मृत डेमॉन (जो स्टार्टअप में नहीं चलता है) एक घटना के कारण जीवित हो सकता है और शुरू हो सकता है।
उबंटू में पुरानी एसवाईवी फ़ाइलों के लिए अपस्टार्ट और /etc/init.d दोनों के लिए / etc / init है। इसमें कुछ फाइलें नियमित SysV Init स्क्रिप्ट हैं जो अभी तक माइग्रेट नहीं की गई हैं। लेकिन कुछ सेवाएँ जो माइग्रेट की गई हैं वे /etc/init.d से / lib / init / upstart-job के लिंक को बनाए रखती हैं। यदि आप उनमें से एक चलाते हैं, तो यह काम करता है, लेकिन यह पहले चेतावनी देता है:
/Etc/init.d के माध्यम से init स्क्रिप्ट को लागू करने के बजाय, सेवा का उपयोग करें (8) उपयोगिता, उदा। service mysql restart
चूँकि आप जिस स्क्रिप्ट को लागू करने का प्रयास कर रहे हैं, उसे अपस्टार्ट नौकरी में बदल दिया गया है, आप पुनः आरंभ (8) उपयोगिता का उपयोग भी कर सकते हैं, उदा। mysql को पुनरारंभ करें।
अपस्टार्ट मशीन पर, अपस्टार्ट से इनिट आता है। एक मास्टर आरसी स्क्रिप्ट चलाने के बजाय जो स्क्रिप्ट को एक विशिष्ट रनलेवल के लिए कॉल करता है, उपस्टार्ट का इनिट इसकी नौकरी निर्देशिका से नौकरियां लेता है।
अब हम जानते हैं कि ऑटोस्टार्ट डेमॉन को सूचीबद्ध करने का कोई सरल तरीका नहीं है, आपको सभी डेमॉन को सूचीबद्ध करना चाहिए और उन्हें एक-एक करके जांचना चाहिए। डेमन द्वारा शुरू किया जा सकता है init
या द्वारा upstart
या बाद की घटना से भी। इस सूची को प्राप्त करने का सबसे सरल तरीका इस कमांड को शेल में चलाया जा रहा है:
initctl show-config
आउटपुट इस तरह दिखता है:
...
hostname
start on startup
udevtrigger
start on ((startup and started udev) and not-container)
tty2
start on (runlevel [23] and ((not-container or container CONTAINER=lxc) or container CONTAINER=lxc-libvirt))
...
पहले की तरह कुछ आइटम इतना सरल है, hostname
स्टार्टअप पर शुरू होता है। लेकिन अन्य आइटम अधिक जटिल लग सकते हैं। (लेकिन सौभाग्य से मानव पढ़ने योग्य :-))
chkconfig --list
सही काम करेगा?on
इसका मतलब है कि सर्विस उस रनवे पर चल रही है, और सिस्टम बूट होने पर यह सर्विस अपने आप शुरू हो जाएगी।