हॉल्ट और शटडाउन कमांड में क्या अंतर है?


जवाबों:


77

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

जैसे, शटडाउन कमांड का उपयोग इस तरह किया जाना है कि कंप्यूटर को तुरंत बंद कर दिया जाए (लिनक्स और फ्रीबीएसडी पर कम से कम):

shutdown -h now

या कस्टम, 30 मिनट की अग्रिम चेतावनी के साथ इसे रिबूट करने के लिए:

shutdown -r +30 "Planned software upgrades"

देरी के बाद, रनलेवल 0 (हाल्ट) या 6 (रिबूट) में बदलने के लिए shutdownकहता initहै। (ध्यान दें कि छोड़ने -hया -rसिस्टम को एकल-उपयोगकर्ता मोड (रनलेवल 1) में जाने का कारण होगा, जो अधिकांश सिस्टम प्रक्रियाओं को मारता है, लेकिन वास्तव में सिस्टम को बंद नहीं करता है; यह अभी भी व्यवस्थापक को रूट के रूप में लॉग इन रहने की अनुमति देता है।)

एक बार जब सिस्टम प्रक्रियाएं मार दी जाती हैं और फाइलसिस्टम अनमाउंट हो गए हैं, तो सिस्टम स्वचालित रूप से बंद या रिबूट हो जाता है। यह haltया rebootकमांड का उपयोग करके किया जाता है , जो डिस्क में परिवर्तन को सिंक करता है और फिर वास्तविक पड़ाव / बिजली बंद या रिबूट करता है।

लिनक्स पर, यदि सिस्टम पहले से ही शटडाउन प्रक्रिया शुरू नहीं कर पाया है haltया rebootचलाया जाता है , तो यह shutdownसीधे किसी अन्य कार्रवाई को करने के बजाय स्वचालित रूप से कमांड को लागू करेगा । हालांकि, FreeBSD जैसे सिस्टम पर , ये कमांड पहले कार्रवाई को लॉग इन करते हैं wtmpऔर फिर तुरंत पहले हत्या प्रक्रियाओं या बिना फाइल किए सिस्टमों को रोकें / स्वयं को रिबूट करेंगे ।


अच्छे खर्च!

18
… लेकिन अब पुराना है। सिस्टमड लिनक्स ऑपरेटिंग सिस्टम पर, ये कमांड मौजूद हैं (सिस्टमड डोको के शब्दों में) "केवल संगतता के लिए"। वहाँ अलग नहीं कर रहे हैं halt, rebootऔर shutdownप्रोग्राम हैं जो एक दूसरे के आह्वान। एक एकल प्रोग्राम है, जिसमें कई कमांड-लाइन पार्सर हैं जो आंतरिक रूप से एक कोड पथ में फ़नल करते हैं। न ही रन स्तर हैं। न ही शटडाउन किसी एकल उपयोगकर्ता मोड में जाता है। वास्तव में, एकल उपयोगकर्ता मोड का नाम बदल दिया गया है। विवरण के लिए, unix.stackexchange.com/a/196014/5132 देखें ।
JdeBP

49

भूतकाल

1980 के दशक में, BSDs था halt, rebootहै, और shutdown। सिस्टम 5 UNIX में BSD संगतता टूलसेट था। लेकिन मूल रूप से इसकी अपनी, अलग, shutdownकमान थी; और haltया बिल्कुल नहीं था reboot। (कुछ सिस्टम 5 वेरिएंट में SCO XENIX जैसी चीजें थीं haltsys।)

बीएसडी haltऔर rebootकमांड निम्न-स्तरीय, कठोर और तत्काल थे। बीएसडी प्रणाली को बंद करने का विचारशील तरीका shutdownकमांड था , जिसने उन सभी चीजों को किया जो एक होने की उम्मीद करता है: wallउपयोगकर्ताओं को संदेश, सेवाओं को सावधानीपूर्वक मार दिया गया, लॉग प्रविष्टियों को लिखा गया, लॉगिन अक्षम और आगे।

जब तक बीएसडी बड़े पैमाने पर थे जहां से प्राप्त ज्ञान की उत्पत्ति हुई कि " shutdownनिष्पादित halt/ reboot", और यह कि बाद की देखभाल के साथ उपयोग किया जाना था; यह सिस्टम 5 की दुनिया थी, जहां लोगों ने इसके विपरीत आदत सीखी थी कि halt/ rebootबस आसान शॉर्टहैंड थे और इससे अधिक कुछ नहीं: /usr/ucb/halt"बीएसडी संगतता पैकेज" से, प्रभाव में कोई भिन्न नहीं था shutdown -h। उन्होंने दोनों करना समाप्त कर दिया init 0

आगे की पढाई

आज

आजकल, हमारे पास संभावित सिस्टम प्रबंधन टूलसेट की एक श्रृंखला है। बीएसडी के पास अभी भी अपने टूलसेट हैं, हालांकि 1990 के दशक में किसी भी संभावित एटी एंड टायम्स को शुद्ध किया गया था। 1992 में मिकेल वैन स्मुरेनबर्ग (पुनः) ने एक लिनक्स init+ rcऔर उनके संबंधित उपकरण लिखे , जिन्हें लोग अब "सिस्टम 5 इनिट" के रूप में संदर्भित करते हैं, भले ही यह वास्तव में यूनिक्स सिस्टम 5 से सॉफ्टवेयर नहीं है (और बस नहीं है) init)। वहाँ भी कर रहे हैं systemd , नवोदय , और nosh , जिनमें से प्रत्येक की है अपने स्वयं के कार्यान्वयन की halt, reboot, fasthalt, fastboot, और इसके आगे।

टूलसेट भी बड़े हो गए हैं और बदल गए हैं। अब एक poweroffकमांड है, जो 1980 के दशक के ऑपरेटिंग सिस्टम में मौजूद नहीं है क्योंकि अधिकांश समकालीन मशीनों पर सेंट्रल प्रोसेसिंग यूनिट्स के पास अपनी बिजली आपूर्ति को नियंत्रित करने का कोई तरीका नहीं था। विशेष रूप से लिनक्स टूलसेट ने बीएसडी कमांड को जकड़ लिया है; लेकिन यूनिक्स सिस्टम 5 पर बीएसडी संगतता उपकरण की तरह, वे सटीक कार्यबल नहीं हैं और चीजें काफी हद तक चपटी हो गई हैं।

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

यह भी थोड़ा शर्मनाक स्थिति में जहाँ इस आदेश सेट इसलिए संगतता विकल्प है कि यह अब लोगों को कंप्यूटर की तरह आत्म विरोधाभासी निर्देश देने के लिए अनुमति देता है के साथ festooned हो गई है करने के लिए हमें लाया गया है reboot --haltऔर poweroff --reboot, जैसा कि मैंने nosh के लिए मैनुअल पेज में बताया गया है halt, fasthalt, reboot, fastboot, और poweroffआज्ञा देता है। ☺

सिस्टम टूलसेट

halt, reboot, poweroff, telinit, और shutdownकर रहे हैं सब एक कार्यक्रम । यह वास्तव में सिस्टमड का अपना systemctlकार्यक्रम है। यह उन कमांड के विभिन्न कमांड लाइन सिंटैक्स के लिए कई कमांड लाइन पार्सर है, साथ ही साथ अपने भी हैं, लेकिन इसके बाद बड़े पैमाने पर आंतरिक रूप से एक कोड पथ में फ़नल। haltकिसी क्रिया को ट्रिगर करने के लिए उपयोग करने और उसके कमांड विकल्पों के बीच कोई अंतर नहीं है और shutdownउसी कार्रवाई को ट्रिगर करने के लिए इसके कमांड विकल्पों का उपयोग किया जाता है।

systemd रेस्क्यू मोड (जो कि सिस्टम के लोगों ने सिंगल यूजर मोड का नाम बदला है ) को शट डाउन सिस्टम स्टेट के रूप में नहीं मानता है , और यह इनमें से किसी भी कमांड के साथ उपलब्ध नहीं है। विकल्प-कम shutdown nowसमान है poweroff

आगे की पढाई:

BSDs

बीएसडी काफी हद तक 1980 के दशक के शब्दार्थ को बनाए रखते हैं। haltऔर shutdownइस प्रकार उनके टूलसेट में बहुत अधिक नहीं हैंhaltऔर rebootएक ही कार्यक्रम है; और अभी भी निम्न स्तर, तत्काल और कठोर हैं। जबकि shutdownऔर poweroff, एक एकल कार्यक्रम भी, अनुसूचित बंद करने, wallसंदेश लिखने , क्रियाओं को लॉग इन करने, लॉगिन को अक्षम करने, और आगे की तरह सभी पर विचार करें ।

बीएसडी उपकरण सेट में, shutdown/ poweroffपारंपरिक रूप से लागू समाप्त हो गया halt/ rebootअंतिम सिस्टम स्थिति परिवर्तन अधिनियमित करने के लिए। (अक्सर आजकल गलत) ज्ञान प्राप्त हुआ कि " shutdownनिष्पादित halt/ rebootवास्तव में अभी भी NetBSD और OpenBSD पर है। लेकिन FreeBSD / TrueOS / DragonFlyBSD पर यह केवल मामला है अगर -oविकल्प का उपयोग किया जाता है। इन BSDs पर, दोनों इन कार्यक्रमों की सामान्य रूप से विभिन्न संकेतों (भेजकर अंतिम सिस्टम स्थिति परिवर्तन अधिनियमित INT, USR1और USR2) को संसाधित करने के लिए # 1। इन प्रणालियों पर सभी सिस्टम राज्य प्रबंधन initकरता है ।

उन सभी को पर, विकल्प कम shutdown nowमें से किसी के बराबर नहीं है halt, rebootया poweroff। यह बीएसडी एकल उपयोगकर्ता मोड में संक्रमण करता है , जिसमें से बहु-उपयोगकर्ता मोड में वापस संक्रमण कर सकता है

आगे की पढाई:

  • shutdownसिस्टम मैनेजर का मैनुअल । नेटबीएसडी मैनुअल पेज। 2011-11-04।
  • reboot,halt । OpenBSD मैनुअल पेज। 2016/09/03।
  • shutdown। फ्रीबीएसडी मैनुअल पेज। 2016/09/21।
  • reboot, halt, fastboot,fasthalt । फ्रीबीएसडी मैनुअल पेज। 2017/03/19।
  • shutdownसिस्टम मैनेजर का मैनुअल । DragonFlyBSD मैनुअल पेज। 2016/09/29।
  • reboot, halt, fastboot,fasthaltसिस्टम मैनेजर का मैनुअल । DragonFlyBSD मैनुअल पेज। 2016/09/29।

नोश टूलसेट

Nosh सिस्टम प्रबंधन टूलसेट में, halt, fasthalt, poweroff, fastpoweroff, reboot, और fastbootसभी एक कार्यक्रम कर रहे हैं। यह एक बैकवर्ड कम्पैटिबिलिटी शिम है जो सामान्य रूप से प्राप्त ज्ञान shutdownके विपरीत है। --forceविकल्प यह श्रृंखला के लिए बनाता है system-controlके बजाय।

तो इस टूलसेट में कमांड और कमांड (समतुल्य विकल्प के साथ --force) के बीच कोई अंतर (अनुपस्थित ) नहीं है , क्योंकि "बीएसडी / सिस्टम 5 संगतता" कमांड का यह सेट टॉप के ऊपर एक पतली शिम लेयर है ।haltshutdownshutdown

आगे की पढाई:

अपस्टार्ट टूलसेट

नोश के साथ, अपस्टार्ट सिस्टम मैनेजमेंट टूलसेट में, प्राप्त बीएसडी ज्ञान के विपरीत लागू होता है। halt, rebootऔर poweroffसभी एक कार्यक्रम हैं, जो आम तौर पर जंजीरों को जकड़ते हैं shutdown; जब तक --forceविकल्प का उपयोग नहीं किया जाता है, जो इसे reboot()सिस्टम को स्वयं कॉल करता है।

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

आगे की पढाई:

  • स्कॉट जेम्स अवशेष। shutdown()) । उबंटू मैनुअल पेज।
  • स्कॉट जेम्स अवशेष। reboot(8), halt(8), poweroff(8) । उबंटू मैनुअल पेज।

लिनक्स सिस्टम 5 init+ rcटूलसेट

फिर, यह टूलसेट में प्राप्त बीएसडी ज्ञान के विपरीत लागू होता है और haltऔर rebootबस श्रृंखला के लिए shutdown- जब तक कि प्रणाली poweroff या पड़ाव में पहले से ही है "रन-स्तर", ऐसी स्थिति में इन आदेशों वास्तव में अंतिम सिस्टम स्थिति परिवर्तन अधिनियमित। shutdownइसकी बारी जंजीरों में init

इसलिए, फिर से, कोई अंतर नहीं है (जब तक कि सिस्टम पहले से ही बड़े पैमाने पर बंद नहीं हो जाता है) haltऔर shutdownक्योंकि पूर्व सिर्फ बाद में आह्वान करता है। और हाँ, फिर से, विकल्प कम shutdown now(जिनमें से कोई भी halt, rebootया poweroffमें प्रणाली लाता अप वे के रूप में लागू पूरी तरह से तैयार विकल्पों समाप्त कर सकते हैं) एकल उपयोगकर्ता मोड के बजाय उसे नीचे बंद।


यही कारण है कि जब 80% मतदाता
ychaouche

आप कहते हैं कि: "पड़ाव और रिबूट एक एकल कार्यक्रम है; और अभी भी निम्न स्तर, तत्काल और कठोर हैं", ऐसा प्रतीत नहीं होता है। मैं ड्रैगनफ्लाईबीएसडी से हॉल्ट मैन पेज को उद्धृत कर रहा हूं जो कहता है: हॉल्ट और रिबूट उपयोगिताओं ने फाइल सिस्टम कैश को डिस्क में फ्लश कर दिया है, सभी चल रही प्रक्रियाओं को एक SIGTERM (और बाद में एक SIGKILL) भेजें और, रिस्पेक्ट- tively, halt या सिस्टम को पुनरारंभ करें। कार्रवाई लॉग की गई है, जिसमें wtmp (5) फ़ाइल में शटडाउन रिकॉर्ड दर्ज करना शामिल है। देखें: dragonflybsd.org/cgi/web-man?command=halt§ion=ANY
ychaouche

अब उस सूची पर पहले से ही स्पष्ट रूप से दिए गए (दो बार ओवर) सेट के लिए फिर से उत्तर पढ़ें और पढ़ें ; विभिन्न बीएसडी सिस्टम प्रशासक के मैनुअल में एक भी वर्तनी है।
JdeBP

क्या सूची @JdeBP?
ychaouche

11

मुझे संदेह है कि यह कुछ हद तक इस बात पर निर्भर है कि आप UNIX / Linux के किस संस्करण का उपयोग कर रहे हैं। Centos (और मैं अन्य आधुनिक लिनक्स को एक्सपेक्ट करता हूं) शटडाउन कॉल को बंद करता है (बशर्ते कि आप रनलेवल 0 या 6 पर न हों ) इसलिए आपका सिस्टम साफ-सुथरा होगा। सोलारिस पर 10 पड़ाव अधिक क्रूर है, यह सिर्फ डिस्क कैश और शक्तियों flushes सिस्टम बंद - कोई प्रयास किसी भी स्क्रिप्ट या बंद को चलाने के लिए किया जाता है smf सुविधाएं।


2

AWS EC2 का उपयोग करने वालों के लिए: AWS पर एक उदाहरण shutdown बंद हो जाता है , जब इसे halt समाप्त कर देता है।


स्टॉप और टर्मिनेट के बीच अंतर क्या है ?
रोइमा

यह पूरी तरह से अलग विषय है, यहाँ ऑफटॉप होने के नाते, इसीलिए मैंने इसका उल्लेख नहीं किया। लेकिन आप docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
dveim

1
इसलिए आपके उत्तर में, आप कह रहे हैं कि स्टॉप वही करता है जो कहता है, और उदाहरण को रोकता है, जबकि रुका हुआ (या आपके वैकल्पिक शब्दावली में, समाप्त ) उदाहरण को रोकता है और इसे हटा देता है।
रोइमा

हाँ। लेकिन यह AWS- विशिष्ट है।
dveim

आह। समझा। ओपी ने संदर्भ नहीं दिया है। आपके पास। धन्यवाद।
रोज़ा

0

लिनक्स में, "पड़ाव" और "रिबूट" शटडाउन कमांड के उपनाम हैं - shutdown -hऔर shutdown -rक्रमशः। बर्डवर्ड शटडाउन आमतौर पर मानता है -एच।


10
वे aliasesशेल उपनामों के अर्थ में नहीं हैं , लेकिन हां, haltमूल रूप से सिर्फ कॉल shutdown -hऔर rebootचलाता है shutdown -r। ध्यान दें कि यदि आप पारित -fकरने के लिए (बल) विकल्प haltया reboot, shutdownहै नहीं कहा जाता है।
मिकेल

दरअसल, हालांकि यह अभी भी गलत है, सिस्टम ऑपरेटिंग सिस्टम पर शादुर का वर्णन मिकेल के सुधार की तुलना में सच्चाई के करीब है। कोई "A सिर्फ B को कॉल नहीं करता है"। वे एक एकल कार्यक्रम को लागू करने के सभी वैकल्पिक तरीके हैं , जैसा कि unix.stackexchange.com/a/196014/5132 पर अधिक विस्तार से बताया गया है
JdeBP

@JdeBP वापस जब मैंने लिखा था कि यह सिस्टमड एक साल से भी कम समय के लिए बाहर था और मैंने कभी इसके बारे में सुना भी नहीं था, मन। :)
शादुर

1
@JdeBP मैं उनकी बराबरी करूंगा, कहते हैं, sendmailइस बिंदु पर कमांड - जैसे एमटीए के साथ, यह वास्तव में कोई फर्क नहीं पड़ता कि आप किस इनिट सिस्टम का उपयोग करते हैं क्योंकि वे सभी इस तरह shutdownऔर दोनों को पहचानेंगे halt
शादुर

1
असल में, यह मायने रखता है; क्योंकि सूक्ष्म, और वास्तव में अशुभ होते हैं, टूलसेट के बीच अंतर। विडंबना यह है कि sendmailकमांड के मामले में भी यही है । यह sendmailकमांड की तरह है , लेकिन उस तरीके से नहीं जैसा आप सोचते हैं।
JdeBP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.