हमें अलग-अलग बायनेरिज़ में रिबूट फ़ंक्शन की आवश्यकता क्यों है?


12

हमें अलग-अलग बायनेरिज़ में रिबूट फ़ंक्शन की आवश्यकता क्यों है?

shutdown -r

तथा

reboot

या वे किसी चीज में भिन्न हैं?


1
भेद के लिए unix.stackexchange.com/questions/8690/… देखें - ऑपरेटिंग सिस्टम के आधार पर कमांड अलग-अलग व्यवहार कर सकते हैं (लेकिन आमतौर पर लिनक्स में एक ही काम करते हैं)।
कृपया

जैसा कि नीचे उल्लेख किया गया है और unix.stackexchange.com/a/196014/5132 पर विस्तार से बताया गया है , इस सवाल का आधार सिस्टमड लिनक्स ऑपरेटिंग सिस्टम पर गलत है। ऐसी प्रणालियों पर ये अलग-अलग बायनेरिज़ नहीं हैं ।
JdeBP

जवाबों:


15

जरूरी नहीं कि हमें उन दोनों की आवश्यकता है, लेकिन यूनिक्स के इतिहास और संस्करणों की बहुलता के कारण हम दोनों हैं।

उनके संबंधित मैन पेज से:

  • शटडाउन उपयोगिता 4.0BSD में दिखाई दी।
  • एक रिबूट उपयोगिता संस्करण 6 एटी एंड टी यूनिक्स में दिखाई दी।

शटडाउन अधिक सामान्य-उद्देश्य है, और अधिक शक्तिशाली है, जबकि रिबूट मित्रवत और याद रखने में आसान है।

शटडाउन आपको एक अस्थायी तर्क निर्दिष्ट करने की अनुमति देता है (उदाहरण के लिए, 5 मिनट में पुनः आरंभ करने के लिए) और आपको छूट के अलावा कई काम करने की अनुमति देता है, जिसमें शामिल हैं:

  • आप केवल उपयोगकर्ताओं को लात मार सकते हैं और वास्तव में बंद नहीं कर सकते हैं
  • आप सिस्टम को बंद करने के बजाय सोने के लिए रख सकते हैं
  • आप केवल रिबूट करने के बिना बंद कर सकते हैं (पड़ाव कमांड की तरह)
  • आप सिस्टम पर उपयोगकर्ताओं के लिए एक कस्टम चेतावनी संदेश शामिल कर सकते हैं

हालाँकि, यदि आप अभी सिस्टम को रिबूट करना चाहते हैं, तो टाइप करना आसान rebootहै shutdown -r now


1
मजेदार तथ्य: कुछ संस्करण shutdownअब डिफ़ॉल्ट के रूप में उपयोग होते हैं। shutdown -hकभी भी शटडाउन के लिए मदद लेने की कोशिश न करें , विशेष रूप से डेटासेंटर में कहीं सर्वर पर नहीं।
रेज़िड्यूम

6

दो आदेशों कुछ अलग करना है, लेकिन वे एक दूसरे को जो बुला खत्म कर सकते हैं कि वे क्यों लग रहे हैं एक ही बात करने के लिए!

rebootवास्तव में एक हार्डवेयर रिबूट ट्रिगर करने के लिए कर्नेल को आमंत्रित करेगा। हालाँकि, यह केवल ऐसा करेगा यदि सिस्टम शटडाउन के लिए तैयार है - सभी डेमोंस और उपयोगकर्ता प्रक्रियाओं को बंद कर दिया जाना चाहिए, फ़ाइल सिस्टम अनमाउंट किया गया है, आदि, इसलिए यह सिस्टम रनलेवल की जांच करता है, और यदि यह 0 या 6 नहीं है, तो यह वास्तव में बंद हो जाएगा। आपके लिए shutdownकमान।

shutdownसिस्टम रनलेवल को बदलने का कारण बनता है। रनलेवल परिवर्तन (रिबूट के लिए 6 या रुकने के लिए 6) /etc/rc0.d या rc6.d में बहुत सी स्क्रिप्ट चलाता है जो डेमॉन, अनमाउंट फाइलसिस्टम आदि को बंद कर देता है। अंत में ये स्क्रिप्ट इनवॉइस करते हैं haltया reboot- इस समय सिस्टम चालू है। सही रनलेवल और वे कर्नेल को रिबूट (या रोकने) के लिए निर्देश देते हैं।


6

आइकोनक्लास्ट ने जो लिखा उसके अलावा, दो कार्यक्रमों के बीच एक महत्वपूर्ण अंतर है: shutdownअंदर है /sbin, जबकि rebootहै /usr/bin

यह क्यों बात करता है, तुम पूछते हो मै तुम्हे बताऊंगा।

इसके तहत चीजें /usrऐसी हैं जो तब तक उपलब्ध नहीं होती हैं जब तक सिस्टम बूट नहीं होता है कि सिस्टम न्यूनतम रूप से कार्यात्मक है। उच्च-स्तरीय निर्देशिका कि परंपरागत रूप से अलग फ़ाइल सिस्टम पर रखा कभी नहीं कर रहे हैं - /bin, /etc, /sbin, आदि - जबकि प्रणाली इस न्यूनतम उपयोगी राज्य तक पहुंच रहा है उपलब्ध होने की उम्मीद कर रहे हैं। इस डिजाइन के विभिन्न निहितार्थ हैं; उदाहरण के लिए, SysV init स्क्रिप्ट के "स्टॉप" क्लॉज को लिखना बुरा है जो प्रोग्राम का उपयोग करता है /usr/binयदि इसमें कोई विकल्प है /binया /sbin

shutdownमुख्य उपयोगिता है, हमेशा उपलब्ध है। rebootकेवल एक सुविधा उपयोगिता है।


1
rebootमें है /sbinडेबियन (SysVinit के साथ) और Ubuntu (नवोदय साथ) में।
गिल्स एसओ- बुराई को रोकें

ठीक है, इसलिए मेटा-उत्तर: अपने सिस्टम को जानें। :) मैं CentOS का सबसे अधिक उपयोग करता हूं।
वॉरेन यंग

आर्क (सिस्टेम) के लिए समान, दोनों / sbin में
daisy

दरअसल, systemd Linux ऑपरेटिंग सिस्टम पर तो कोई महत्वपूर्ण उपयोगिता है, क्योंकि systemd के साथ ये सभी कमांड हैं (जैसा कि systemd doco के पास है) "संगतता" कमांड। वास्तव में, प्रश्न का आधार गलत है। वे अलग-अलग बायनेरिज़ में नहीं हैं । विवरण के लिए, unix.stackexchange.com/a/196014/5132 देखें ।
JdeBP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.