shutdownฉันไม่ได้พบคำตอบที่ชัดเจนให้กับความแตกต่างระหว่างสองตัวเลือกคำสั่ง
เป็นhaltเช่นเดียวกับshutdown -Hและpoweroffเช่นเดียวกับshutdown -P?
shutdownฉันไม่ได้พบคำตอบที่ชัดเจนให้กับความแตกต่างระหว่างสองตัวเลือกคำสั่ง
เป็นhaltเช่นเดียวกับshutdown -Hและpoweroffเช่นเดียวกับshutdown -P?
คำตอบ:
มันค่อนข้างประวัติศาสตร์
haltถูกใช้ก่อน ACPI (ซึ่งวันนี้จะปิดไฟสำหรับคุณ) * มันจะหยุดระบบแล้วพิมพ์ข้อความไปที่เอฟเฟกต์ของ "ไม่เป็นไรที่จะปิดตอนนี้" เมื่อก่อนมีการเปิด / ปิดสวิตช์แบบทางกายภาพแทนที่จะใช้ปุ่มเปิด / ปิดคอมโบ ACPI ซึ่งควบคุมด้วยคอมพิวเตอร์
poweroffโดยธรรมชาติจะหยุดระบบแล้วโทร ACPI ปิด
* วันhaltนี้ฉลาดพอที่จะโทรโดยอัตโนมัติpoweroffหากเปิดใช้งาน ACPI ในความเป็นจริงพวกเขามีหน้าที่เทียบเท่าตอนนี้
/sbin/poweroffเป็น symlink /sbin/haltไป
shutdownฉันกำลังพูดคุยเกี่ยวกับสองตัวเลือกคำสั่ง คำสั่งhaltเหมือนกันshutdown -Hและสั่งpoweroffเหมือนกันshutdown -Pไหม? @phunehehe ด้วย
haltเคยทำเช่นนั้น ไม่มีการปิดระบบอย่างเป็นระเบียบเพียงแค่หยุดสิ่งที่เครื่องทำอยู่ตอนนั้นและที่นั่น เป็นเรื่องปกติที่จะออกsync;sync;sync;haltเพื่อให้แน่ใจว่าบัฟเฟอร์ทั้งหมดถูกเขียนลงดิสก์
พวกเขาไม่เหมือนกัน แต่มีความสัมพันธ์ใกล้ชิดมาก ในทางปฏิบัติหากคุณไม่ต้องการระบุเวลาใดเวลาหนึ่งที่จะปิดหรือจะบังคับทันทีมลทินรีบูต / หยุด / poweroff จริงๆมันไม่สำคัญว่าคุณเรียกใช้shutdown -hหรือhalt... หรือเทียบshutdown -r rebootสิ่งที่ไม่ได้สะดวกอย่างมากในอดีต แต่นี่เป็นวิธีการทำงานในขณะนี้ (โอกาสมากมายสำหรับความคลุมเครือหรือข้อผิดพลาดของผู้ใช้ถูกลบ / ปรับให้เรียบ)
/sbin/shutdownทำการ "ล้างข้อมูล" จำนวนมากเช่นการแจ้งเตือนผู้ใช้ปิดกั้นการเข้าสู่ระบบใหม่ในขณะที่ระบบปิด นอกจากนี้ยังสามารถบอกให้ปิดระบบในเวลาที่กำหนดหรือใน XX นาที - เตือนผู้ใช้ที่ลงชื่อเข้าใช้ทุกครั้งที่มีการปิดระบบ
นอกจากนี้ยังเปลี่ยน runlevel เป็น0( halt/ poweroff) หรือ6( reboot) ซึ่งกระตุ้นให้ระบบหยุดบริการที่กำลังทำงาน, unmount ดิสก์ ฯลฯ เพื่อเตรียมพร้อมสำหรับการหยุดจริง, poweroff หรือรีบูต
เมื่อทุกสิ่งที่จะทำก็แล้วโทร/sbin/halt, /sbin/rebootหรือ/sbin/poweroff( rebootและpoweroffมักจะ symlinks ไปhaltซึ่งตีความพวกเขาเป็นhalt -rและhalt -Pตามลำดับ)
อย่างไรก็ตามโปรดทราบว่าหากhalt/ reboot/ poweroffถูกเรียกเมื่อระบบไม่ได้อยู่ในระดับ runlevel มิ0ฉะนั้น6จะมีการเรียกshutdownให้ทำงานยกเว้นว่าจะใช้ตัวเลือก-fหรือforce
(รายละเอียดของการตีความระดับการทำงานอาจแตกต่างจาก distro ไป distro แต่0และ6ใช้ตามที่อธิบายไว้ใน Debian และ Debian-Derivatives เช่น Ubuntu)
ดู man pages สำหรับshutdownและhaltสำหรับข้อมูลเพิ่มเติม
ในที่สุดความแตกต่างระหว่างhaltและpoweroffสถานะคือhaltทำทุกอย่างเพื่อปิดเครื่องจริง ๆ (บนฮาร์ดแวร์บางชนิดนี่หมายความว่ามันหยดลงใน ROM bootloader หรือคล้ายกันบนฮาร์ดแวร์พีซีส่วนใหญ่จะหยุดทำงาน) ในขณะที่poweroffทำขั้นตอนสุดท้ายและ ปิด rebootแน่นอนเข้าสู่สถานะหยุดแล้วรีบูตคอมพิวเตอร์
BTW ค่าเริ่มต้นมักจะเป็นอย่างใดอย่างหนึ่งpoweroffหรือrebootแต่คุณสามารถใช้-Hเป็นอาร์กิวเมนต์shutdownเพื่อให้หยุดแทน สิ่งนี้ไม่ได้มีประโยชน์มากในกล่อง linux บนเครื่อง PC (แต่มีประโยชน์บนเครื่องเช่นกล่อง sparc ที่มี monitor boot firmware เป็นไปได้ว่ามันอาจเป็นประโยชน์สำหรับเครื่องใหม่ที่มีบรรทัดคำสั่ง EFI)
shutdownคำสั่งทั้งหมดที่มีความคิดในระดับการทำงาน shutdownส่วนใหญ่ไม่ได้เรียกhalt/ reboot/ poweroff; แดกดันมันอยู่ในระบบที่ไม่ใช่ลินุกซ์ไม่กี่ที่นี้ได้รับภูมิปัญญายังคงเป็นจริงในวันนี้ และสถานที่ที่เชื่อมโยงสัญลักษณ์ชี้ไม่จำเป็นต้องhalt; ไม่เพียงแค่นั้นในชุดเครื่องมือบางตัวพวกเขาไม่ใช่ลิงก์สัญลักษณ์เลย ดูunix.stackexchange.com/a/196471/5132สำหรับรายละเอียดเพิ่มเติม