जवाबों:
आम तौर पर, एक 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
और फिर तुरंत पहले हत्या प्रक्रियाओं या बिना फाइल किए सिस्टमों को रोकें / स्वयं को रिबूट करेंगे ।
halt
, reboot
और shutdown
प्रोग्राम हैं जो एक दूसरे के आह्वान। एक एकल प्रोग्राम है, जिसमें कई कमांड-लाइन पार्सर हैं जो आंतरिक रूप से एक कोड पथ में फ़नल करते हैं। न ही रन स्तर हैं। न ही शटडाउन किसी एकल उपयोगकर्ता मोड में जाता है। वास्तव में, एकल उपयोगकर्ता मोड का नाम बदल दिया गया है। विवरण के लिए, unix.stackexchange.com/a/196014/5132 देखें ।
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
।
halt
। 1982/05/11। 4.2BSD मैनुअल।haltsys
। 2005-06-03। SCO OpenServer मैनुअल।आजकल, हमारे पास संभावित सिस्टम प्रबंधन टूलसेट की एक श्रृंखला है। बीएसडी के पास अभी भी अपने टूलसेट हैं, हालांकि 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
।
बीएसडी काफी हद तक 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 संगतता" कमांड का यह सेट टॉप के ऊपर एक पतली शिम लेयर है ।halt
shutdown
shutdown
shutdown
। nosh टूलसेट मैनुअल पेज। सॉफ्टवेयर्स।telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
nosh टूलसेट मैनुअल पेज। सॉफ्टवेयर्स।नोश के साथ, अपस्टार्ट सिस्टम मैनेजमेंट टूलसेट में, प्राप्त बीएसडी ज्ञान के विपरीत लागू होता है। halt
, reboot
और poweroff
सभी एक कार्यक्रम हैं, जो आम तौर पर जंजीरों को जकड़ते हैं shutdown
; जब तक --force
विकल्प का उपयोग नहीं किया जाता है, जो इसे reboot()
सिस्टम को स्वयं कॉल करता है।
तो, फिर से, इस टूलसेट में कमांड और कमांड (समतुल्य विकल्प के साथ --force
) के बीच कोई अंतर (अनुपस्थित ) नहीं है । इसके अलावा फिर से, विकल्प कम (जिनमें से कोई भी , या में प्रणाली लाता अप वे के रूप में लागू पूरी तरह से तैयार विकल्पों समाप्त कर सकते हैं) एकल उपयोगकर्ता मोड के बजाय उसे नीचे बंद।halt
shutdown
shutdown now
halt
reboot
poweroff
shutdown
()) । उबंटू मैनुअल पेज।reboot
(8), halt
(8), poweroff
(8) । उबंटू मैनुअल पेज।init
+ rc
टूलसेटफिर, यह टूलसेट में प्राप्त बीएसडी ज्ञान के विपरीत लागू होता है और halt
और reboot
बस श्रृंखला के लिए shutdown
- जब तक कि प्रणाली poweroff या पड़ाव में पहले से ही है "रन-स्तर", ऐसी स्थिति में इन आदेशों वास्तव में अंतिम सिस्टम स्थिति परिवर्तन अधिनियमित। shutdown
इसकी बारी जंजीरों में init
।
इसलिए, फिर से, कोई अंतर नहीं है (जब तक कि सिस्टम पहले से ही बड़े पैमाने पर बंद नहीं हो जाता है) halt
और shutdown
क्योंकि पूर्व सिर्फ बाद में आह्वान करता है। और हाँ, फिर से, विकल्प कम shutdown now
(जिनमें से कोई भी halt
, reboot
या poweroff
में प्रणाली लाता अप वे के रूप में लागू पूरी तरह से तैयार विकल्पों समाप्त कर सकते हैं) एकल उपयोगकर्ता मोड के बजाय उसे नीचे बंद।
मुझे संदेह है कि यह कुछ हद तक इस बात पर निर्भर है कि आप UNIX / Linux के किस संस्करण का उपयोग कर रहे हैं। Centos (और मैं अन्य आधुनिक लिनक्स को एक्सपेक्ट करता हूं) शटडाउन कॉल को बंद करता है (बशर्ते कि आप रनलेवल 0 या 6 पर न हों ) इसलिए आपका सिस्टम साफ-सुथरा होगा। सोलारिस पर 10 पड़ाव अधिक क्रूर है, यह सिर्फ डिस्क कैश और शक्तियों flushes सिस्टम बंद - कोई प्रयास किसी भी स्क्रिप्ट या बंद को चलाने के लिए किया जाता है smf सुविधाएं।
AWS EC2 का उपयोग करने वालों के लिए: AWS पर एक उदाहरण shutdown
बंद हो जाता है , जब इसे halt
समाप्त कर देता है।
लिनक्स में, "पड़ाव" और "रिबूट" शटडाउन कमांड के उपनाम हैं - shutdown -h
और shutdown -r
क्रमशः। बर्डवर्ड शटडाउन आमतौर पर मानता है -एच।
aliases
शेल उपनामों के अर्थ में नहीं हैं , लेकिन हां, halt
मूल रूप से सिर्फ कॉल shutdown -h
और reboot
चलाता है shutdown -r
। ध्यान दें कि यदि आप पारित -f
करने के लिए (बल) विकल्प halt
या reboot
, shutdown
है नहीं कहा जाता है।
sendmail
इस बिंदु पर कमांड - जैसे एमटीए के साथ, यह वास्तव में कोई फर्क नहीं पड़ता कि आप किस इनिट सिस्टम का उपयोग करते हैं क्योंकि वे सभी इस तरह shutdown
और दोनों को पहचानेंगे halt
।
sendmail
कमांड के मामले में भी यही है । यह sendmail
कमांड की तरह है , लेकिन उस तरीके से नहीं जैसा आप सोचते हैं।