परंपरागत रूप से, लिनक्स ने सिस्टम वी-स्टाइल इनिट स्क्रिप्ट का उपयोग किया - जबकि नए इनिट सिस्टम अंततः पारंपरिक रनलेवलों को अप्रचलित कर देंगे, लेकिन अभी तक नहीं हैं। उदाहरण के लिए, उबंटू की अपस्टार्ट प्रणाली अभी भी पारंपरिक सिस्टम वी-स्टाइल स्क्रिप्ट का उपयोग करती है।
रनलेवल क्या है?
जब एक लिनक्स सिस्टम बूट करता है, तो यह लॉन्च करता है इस में प्रक्रियाओं। init प्रणाली पर अन्य प्रक्रियाओं को लॉन्च करने के लिए ज़िम्मेदार है। उदाहरण के लिए, जब आप अपना लिनक्स कंप्यूटर शुरू करते हैं, तो कर्नेल init शुरू होता है, और init आपके हार्डवेयर को आरंभ करने के लिए स्टार्टअप स्क्रिप्ट निष्पादित करता है, नेटवर्किंग लाता है, अपना ग्राफिकल डेस्कटॉप प्रारंभ करता है।
हालांकि, स्टार्टअप स्क्रिप्ट्स इनिट निष्पादन का केवल एक सेट नहीं है। अपनी स्टार्टअप स्क्रिप्ट के साथ कई रन स्तर हैं - उदाहरण के लिए, एक रनलेवल नेटवर्किंग ला सकता है और ग्राफिकल डेस्कटॉप लॉन्च कर सकता है, जबकि एक और रनलेवल नेटवर्किंग अक्षम कर सकता है और ग्राफ़िकल डेस्कटॉप छोड़ सकता है। इसका मतलब यह है कि आप एक ही कमांड के साथ "ग्राफ़िकल डेस्कटॉप मोड" से "नेटवर्क कंसोल मोड के बिना टेक्स्टिंग कंसोल मोड" से अलग-अलग सेवाओं को मैन्युअल रूप से शुरू और बंद किए बिना छोड़ सकते हैं।
अधिक विशेष रूप से, init एक विशिष्ट निर्देशिका में स्थित स्क्रिप्ट चलाता है जो रनलेवल से मेल खाता है। उदाहरण के लिए, जब आप उबंटू पर रनलेवल 3 दर्ज करते हैं, तो init /etc/rc3.d निर्देशिका में स्थित स्क्रिप्ट चलाता है।
रनलेवल
कुछ रनलेवल लिनक्स वितरण के बीच मानक हैं, जबकि कुछ रनलेवल वितरण से वितरण में भिन्न होते हैं।
निम्नलिखित रनलेवल मानक हैं:
- 0 – पड़ाव (सिस्टम को बंद कर देता है।)
- 1 – एकल उपयोगकर्ता मोड (प्रणाली डिमन्स या नेटवर्किंग शुरू किए बिना सुपरसुर मोड में बूट हो जाती है। रिकवरी या डायग्नोस्टिक वातावरण में बूट करने के लिए आदर्श।)
- 6 – रीबूट
रनलेवल 2-5 वितरण के आधार पर भिन्न होता है। उदाहरण के लिए, उबंटू और डेबियन पर, रनलेवल 2-5 समान हैं और नेटवर्किंग और ग्राफिकल लॉगिन के साथ एक पूर्ण बहु-उपयोगकर्ता मोड प्रदान करते हैं। फेडोरा और रेड हैट पर, रनलेवल 2 नेटवर्किंग के बिना बहु-उपयोगकर्ता मोड प्रदान करता है (केवल कंसोल लॉगिन), रनलेवल 3 नेटवर्किंग (केवल कंसोल लॉगिन) के साथ बहु-उपयोगकर्ता मोड प्रदान करता है, रनलेवल 4 अप्रयुक्त है, और रनलेवल 5 बहु-उपयोगकर्ता मोड प्रदान करता है नेटवर्किंग और ग्राफिकल लॉगिन।
एक अलग रनलेवल पर स्विचिंग
सिस्टम पहले से चल रहा है, जबकि एक अलग रनलेवल पर स्विच करने के लिए, निम्न आदेश का उपयोग करें:
sudo telinit #
# उस रनलेवल की संख्या के साथ बदलें जिसे आप स्विच करना चाहते हैं। अगर आप एक वितरण चला रहे हैं जो सूडो का उपयोग नहीं करता है तो sudo को छोड़ दें और कमांड को रूट के रूप में चलाएं।
एक विशिष्ट रनलेवल के लिए सीधे बूटिंग
उदाहरण के लिए, आप बूट लोडर - ग्रब से बूट करने के लिए एक रनलेवल का चयन कर सकते हैं। बूट प्रक्रिया की शुरुआत में, ग्रब तक पहुंचने के लिए एक कुंजी दबाएं, अपनी बूट प्रविष्टि का चयन करें, और इसे संपादित करने के लिए ई दबाएं।
आप जोड़ सकते हो एक के अंत तक linux सिंगल-उपयोगकर्ता रनलेवल (रनलेवल 1) दर्ज करने के लिए लाइन। (बूट करने के लिए Ctrl + x दबाएं।) यह ग्रब में रिकवरी मोड विकल्प जैसा ही है।
पारंपरिक रूप से, आप एक कर्नेल पैरामीटर के रूप में एक संख्या निर्दिष्ट कर सकते हैं और आप उस रनलेवल पर बूट करेंगे - उदाहरण के लिए, उपयोग करें 3 के बजाय एक रनलेवल 3 पर बूट करने के लिए। हालांकि, यह उबंटू के नवीनतम संस्करणों पर काम नहीं करता है - अपस्टार्ट इसे अनुमति नहीं देता है। इसी प्रकार, आप डिफ़ॉल्ट रनलेवल को कैसे बदलते हैं, यह आपके वितरण पर निर्भर करेगा।
जबकि उबंटू का अपस्टार्ट डिमन अभी भी सिस्टमवी इनिट सिस्टम का अनुकरण करता है, इस जानकारी में से अधिकांश भविष्य में बदल जाएगी। उदाहरण के लिए, अपस्टार्ट ईवेंट-आधारित है - ईवेंट होने पर यह रोक सकता है और सेवाओं को शुरू कर सकता है (उदाहरण के लिए, जब कोई हार्डवेयर डिवाइस सिस्टम से कनेक्ट होता है और डिवाइस को हटा दिए जाने पर रोकता है तो एक सेवा प्रारंभ हो सकती है।) फेडोरा का अपना उत्तराधिकारी भी है init, systemd करने के लिए।