रिबूट की आवश्यकता कब होती है?


27

कर्नेल को अपग्रेड करने के अलावा, क्या लिनक्स सिस्टम में कोई बदलाव होता है जिसमें रिबूट की आवश्यकता होती है? मुझे पता है कि ऐसी परिस्थितियां हैं जहां एक रिबूट चीजों को आसान बनाता है, लेकिन क्या कोई ऐसा है जिसे रिबूट के अलावा पूरा नहीं किया जा सकता है?

स्पष्ट करने के लिए: मैं एक सामान्य डेस्कटॉप या सर्वर सिस्टम के बारे में सोच रहा हूं जो हार्डवेयर की खराबी से पीड़ित नहीं है।


3
हर काम रिबूट किए बिना किया जा सकता है। यहां तक ​​कि कर्नेल को बदलकर ksplice का उपयोग किया जा सकता है ताकि आप अपने कर्नेल को गर्म कर सकें। केवल एक चीज जिसे आपको ध्यान में रखने की आवश्यकता है, वह यह है कि रिबूट किए बिना सब कुछ बहुत जटिल हो सकता है
किवी

4
आपका प्रश्न बहुत व्यापक है, क्योंकि "लिनक्स सिस्टम" का अर्थ कई अलग-अलग चीजें हो सकती हैं।
ज़रीन

इसके अलावा "कोई भी परिवर्तन" का अर्थ काफी भिन्न स्थितियों से हो सकता है। क्या फेल हार्ड ड्राइव से वसूली एक एमडी दर्पण का हिस्सा है जो इस तरह का बदलाव है? यदि हाँ, तो - दुर्भाग्य से - इसे कभी-कभी रिबूट की आवश्यकता होगी, क्योंकि उदाहरण के लिए कुछ एचडीडी विफलताओं (कुछ एचडीडी नियंत्रकों पर) सिस्टम को गैर-जिम्मेदार बनाने में सक्षम हैं। लेकिन आप शायद ऐसे "परिवर्तनों" के बारे में नहीं पूछ रहे हैं ...
ज़रीन

3
@ कीवी तकनीकी रूप से ksplice कर्नेल को नहीं बदलता है । Ksplice एक चल रहे कर्नेल को पैच करने की अनुमति देता है, जबकि यह चल रहा है। आप kexec के बारे में सोच रहे होंगे , जो एक नई कर्नेल छवि को मेमोरी में एक रनिंग कर्नेल "लोड" करने की अनुमति देता है।
थॉमस निमन

यह मुझे याद दिलाता है, विंडोज़ एक्सपी (मैं कभी भी परे नहीं गया) कभी भी पुनरारंभ करने के बारे में कभी नहीं बजाता है भले ही यह आईई 8 (या जो भी संख्या) अपडेट किया गया हो, जो विंडोज की स्थापना के बाद से 4 साल से नहीं खोला गया है, और इसलिए इसे डाउनलोड करने की आवश्यकता है ब्राउज़र।
शाहबाज़

जवाबों:


44

कुछ बातें दिमाग में आती हैं:

  • एक कर्नेल आतंक से पुनर्प्राप्त करें

    एक कर्नेल पैनिक, परिभाषा के अनुसार, कर्नेल को पुनरारंभ किए बिना से पुनर्प्राप्त नहीं किया जा सकता है।

  • हैंग से प्राप्त करें जो आपको टर्मिनल एक्सेस के बिना छोड़ देता है

    यदि सिस्टम अनुत्तरदायी है और आप पुनर्प्राप्त करने के लिए आदेश जारी करने के तरीके के बिना फंसे हुए हैं, तो केवल एक चीज जो आप कर सकते हैं वह है रिबूट। आमतौर पर, आप मैनुअल पावर साइकिल चलाने से बचना चाहते हैं। इस प्रकार की स्थितियों के लिए, लिनक्स कर्नेल में मैजिक SysRq समर्थन होता है जिसका उपयोग किसी आपात स्थिति में मशीन को रिबूट करने के लिए किया जा सकता है।

    जब तक CONFIG_MAGIC_SYSRQविकल्प को कर्नेल कॉन्फ़िगरेशन में सक्षम किया गया है, और kernel.sysrq sysctlविकल्प सक्षम किया गया है, तब तक आप सीधे मैजिक SysRq कुंजी संयोजनों के साथ कर्नेल को कमांड जारी कर सकते हैं:

    ध्यान दें कि Alt+ SysRqनीचे का अर्थ है दबाएं और दबाए रखें Alt , फिर दबाएं और दबाए रखें SysRq (आमतौर पर PrintScrnकुंजी)।

    1. Alt+ SysRq+ r: कीबोर्ड का नियंत्रण पुनः प्राप्त करें
    2. Alt+ SysRq+ e: SIGTERMसभी प्रक्रियाओं को भेजें , सिवाय इसके initकि उन्हें इनायत करने का मौका दिया जाए
    3. Alt+ SysRq+ i: SIGKILLसभी प्रक्रियाओं को भेजें , सिवाय इसके कि initउन्हें समाप्त करने के लिए मजबूर किया जाए
    4. Alt+ SysRq+ s: सभी माउंटेड फाइल सिस्टम को सिंक करने का प्रयास
    5. Alt+ SysRq+ u: केवल पढ़ने के लिए सभी फाइल सिस्टम को रिमाउंट करें
    6. Alt+ SysRq+ b: रिबूट, या

      Alt+ SysRq+ o: शटडाउन

    एक सुंदर रिबूट का प्रयास करने के लिए जादू SysRq कुंजी संयोजनों के लिए एक महामारी है:

    " आर eboot ven मैं एस ystem यू tterly बी रोके "

    हेडलेस सर्वर के लिए, नेटवर्क पर दूरस्थ SysRq दृश्यों को सक्षम करने वाला एक iptables लक्ष्य भी है ।

  • अप्राप्य अवस्था से उबरना

    यदि सिस्टम पहले से ही एक ऐसी स्थिति में लाया गया है जहां एक नियमित बूट संभव नहीं है (जैसे कि एक असफल सिस्टम अपग्रेड, भ्रष्ट फाइल सिस्टम आदि के परिणामस्वरूप), तो सिस्टम पर रिकवरी कंसोल तक पहुंचने का एकमात्र तरीका रिबूट हो सकता है। उपयुक्त बूट-टाइम विकल्पों का उपयोग करना।

  • बूट-टाइम कर्नेल पैरामीटर बदलें

    कुछ कर्नेल पैरामीटर (जैसे auditकर्नेल ऑडिटिंग को सक्षम / अक्षम करने के लिए) केवल तभी सेट किया जा सकता है जब कर्नेल को बूट-टाइम पर लोड किया जाता है।


3
"रिबूट सम इफ़ेक्ट सिस्टम यूटरली ब्रोक" मैं इस मामले में सिर्फ इस सवाल का पक्ष ले रहा हूँ, लेकिन मुझे नहीं लगता कि मैं इसे कभी भूल पाऊँगा।
एम्बेडेड।

1
यह संभवतः ध्यान देने योग्य है कि आप एक केक्सेक का उपयोग करके एक आतंक से बाहर निकल सकते हैं और एक पूर्ण रीबूट से बच सकते हैं। यह भी अपरिवर्तनीय राज्य बिंदु से बाहर निकलने के लिए समान रूप से लागू होता है। (वे किसी भी तरह से एक ही चीज नहीं हैं, कम से कम एक x86 सिस्टम पर)। हालांकि इस उत्तर के बाकी हिस्सों के लिए +1।
वैलिट

@Vality आपकी टिप्पणी के लिए धन्यवाद। अगर केक्सेक रीबूट करता है, तो शायद यह एक हद तक लोगों के दृष्टिकोण पर निर्भर करता है। Kdump प्रलेखन उदाहरण के लिए एक रिबूट जो सिस्टम कर्नेल की स्मृति छवि को बरकरार रखता है के रूप में kexec-ऑन-आतंक का वर्णन है। के रूप में unbootable राज्य के बारे में बात करने के लिए, मैंने बूटलोडर मिसकॉन्फ़िगरेशन (उदाहरण के लिए कर्नेल को पहले स्थान पर लोड करने में विफलता) जैसी चीज़ों पर भी विचार किया, जहां केक्सक मदद नहीं करता है। प्रश्न की प्रकृति को देखते हुए, मुझे लगता है कि शब्दार्थ के संबंध में कुछ मतभेद अपरिहार्य हैं।
थॉमस निमन

@ThomasNyman आपकी विस्तृत प्रतिक्रिया के लिए धन्यवाद, जिस प्रश्न को आप सही समझ रहे हैं, उसे देखते हुए। मुझे लगता है कि kexec के बारे में बात करना शायद लक्ष्य के दर्शकों या इस सवाल के लिए अनावश्यक रूप से जटिल हो जाएगा। और आप बूट-लोडर त्रुटियों के बारे में भी एक अच्छी बात करते हैं।
वैलिटी

मैंने कभी नहीं देखा कि प्रिंट स्क्रीन के नीचे लिखा गया छोटा सा SysRq! यह कमाल का है। काश मैं यह जानता था जब मैं कर्नेल मॉड्यूल प्रोग्रामिंग सीख रहा था!
शाहबाज़

2

दो बार मैं सोच सकता हूं कि मैं कहां से रिबूट करना चाहता हूं:

  1. जब मुझे यह सुनिश्चित करने की आवश्यकता होती है कि सिस्टम उचित स्थिति में बूट हो सकता है।

    मैंने एक बार एक सिस्टम पर काम किया था जिसमें कुछ डेमन कॉन्फ़िगर किया गया था जबकि यह चल रहा था। कुछ वर्षों तक चलने के बाद, एक बिजली की विफलता ने इसे रिबूट करने का कारण बना दिया, लेकिन डेमॉन स्टार्टअप प्रक्रिया का हिस्सा नहीं था और किसी को भी कोई सुराग नहीं था कि इसे सालों पहले कैसे कॉन्फ़िगर किया गया था। सिस्टम दिनों के लिए नीचे था, जब हमें पता लगा कि इसे कैसे फिर से कॉन्फ़िगर करना है।

    वास्तव में रिबूटिंग एकमात्र तरीका है जिससे आप यह जान सकते हैं कि बिजली की विफलता के बाद आपका सिस्टम ठीक से चालू हो जाएगा।

  2. जब एक सिस्टम लाइब्रेरी को अपडेट किया गया है।

    बताते चलें कि लाइब्रेरी में एक बड़ी सुरक्षा खामी का पता चला है जिसे सिस्टम पर कई ऐप / सर्वर के साथ साझा किया गया है। आप रिबूट किए बिना लाइब्रेरी को अपडेट कर सकते हैं, लेकिन अभी भी असुरक्षित लाइब्रेरी के साथ कितनी प्रक्रियाएं चल रही हैं? आप पुराने पुस्तकालय (यदि आप इसका पता लगा सकते हैं) का उपयोग करके किसी भी चीज को फिर से शुरू कर सकते हैं, लेकिन यह त्रुटि प्रवण है और सिर्फ रिबूट होने में अधिक समय लग सकता है।

    रिबूटिंग यह सुनिश्चित करने का सबसे अच्छा तरीका है कि सभी चलने वाली प्रक्रियाएं अभी भी पुराने, छोटी गाड़ी लाइब्रेरी का उपयोग नहीं कर रही हैं।


यदि आप एक अच्छे पैकेज मैनेजर का उपयोग करते हैं, तो एक निश्चित पुस्तकालय के आधार पर सभी बायनेरिज़ को खोजने के लिए बेहतर तरीके हैं। Gentoo से फिर से तैयार मन में आता है।
स्पाइडी

1
@Spidey: एक बार जब आप उन बायनेरिज़ का पुनर्निर्माण करते हैं, तो आप यह कैसे सुनिश्चित करते हैं कि छोटी लाइब्रेरी के साथ कोई पुरानी प्रक्रिया नहीं चल रही है?
गाबे

1
आप कैसे जानते हैं कि कौन से डेमॉन में आपत्तिजनक लाइब्रेरियाँ भरी हुई हैं?
गाबे

1
उदाहरण के लिए, आप देख सकते हैं कि पुस्तकालयों को lsofअपग्रेड करने से पहले कौन सी प्रक्रियाएँ पुस्तकालयों को उनकी मेमोरी स्पेस में मैप कर देती हैं।
थॉमस निमन

1
@ जीबे ज़रूर, और जब मैं मानता हूं कि रिबूट करने का यह एक अच्छा कारण है, तो ओपी स्पष्ट रूप से यह नहीं पूछ रहा है कि किन मामलों में रिबूट अधिक रूढ़िवादी है, लेकिन जब रिबूट बिल्कुल आवश्यक है
थॉमस निमन

0

यदि आप सॉफ़्टवेयर कॉन्फ़िगरेशन में नियोजित परिवर्तन का मतलब है और पूरी तरह से काम कर रहे हार्डवेयर (मुझे ऐसा अभी तक नहीं देखा है) और बग-मुक्त सॉफ़्टवेयर (आप जानते हैं ...), तो केवल कर्नेल या ड्राइवर में एक बग आपको बाध्य करेगा रिबूट। :)

इसके अलावा ... मुझे यकीन नहीं है कि अगर initएकल उपयोगकर्ता मोड पर स्विच किए बिना प्रतिस्थापित करना संभव होगा और कुछ जादू करना जो अनिवार्य रूप से रिबूट से बहुत अलग नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.