ปลอดภัยหรือไม่ที่จะ“ ดึงปลั๊ก” หลังจากรันคำสั่ง halt บน UNIX


5

นี่อาจเป็นคำถามโง่ ๆ ที่มีคำตอบง่าย ๆ แต่ดูเหมือนว่าฉันจะไม่สามารถเข้าใจได้หลังจากผ่าน Google-ing ไปแล้วหลายชั่วโมง จากสิ่งที่ผมได้เรียนรู้haltคำสั่งบนระบบปฏิบัติการยูนิกซ์ (เช่น BSD) และ Unix เหมือนระบบ (เช่นลินุกซ์) syncจะหยุดซีพียูหลังจากเรียก ฉันรู้ว่าใน Linux Distros ที่ทันสมัยhaltเป็นเพียงอีกวิธีหนึ่งในการโทรshutdownแต่ฉันได้ติดตั้ง FreeBSD และ Arch Linux บนแล็ปท็อปของฉันแล้วระบบทั้งสองดูเหมือนจะทำในสิ่งที่haltควรทำ (หยุด CPU แต่ไม่ใช่ ACPI ปิดตัวลง). คำถามของฉันคือหลังจากโทร

# sync;sync;sync
# halt

ปลอดภัยหรือไม่ที่จะ "ดึงปลั๊ก" หรือตัดไฟ (จากปลั๊กไฟที่ผนัง)? หลังจากเรียกhaltระบบเป็นจริงในสถานะ "ปิด"

โบนัส: หลังจากหยุดการเรียกใช้บน eiter Arch Linux หรือ FreeBSD คอมพิวเตอร์ของฉันดูเหมือนว่า "หยุด" เหมือนกับว่ามันไม่ตอบสนองและไม่มีอะไรทำงาน แต่ฉันยังได้ยินเสียงพัดลมทำงานอยู่ พัดลมหยุดทำงานหลังจากที่ฉันถอดปลั๊กออก ดังนั้นจึงไม่ใช่ปัญหาฉันแค่สงสัยว่าอาจhaltจะไม่หยุดฮาร์ดแวร์ทั้งหมดและหยุด CPU เท่านั้นหรือ


เมื่อระบบหยุดทำงานแล้วจะไม่มีอันตรายอีกต่อไปที่จะทำให้ระบบเสียหายโดยการถอดปลั๊กไฟออก
Nevin Williams

@NevinWilliams หมายความว่า <code> halt </code> จะเลิกเมานท์ FileSystems ที่เมาท์ทั้งหมดหรือไม่
Ankush

ไม่ 'คนหยุดพูด' ในเรื่องนี้คืออะไร?
Nevin Williams

หยุดสามารถหยุดได้เฉพาะฮาร์ดแวร์ที่มีฟังก์ชั่นหยุด แฟน ๆ ไม่มีฟังก์ชั่นหยุด
qasdfdsaq

คำตอบ:


5

ตราบใดที่syncเสร็จสมบูรณ์อาจเป็นไปได้เสมอที่จะถอดปลั๊ก!

ในวันเก่า ๆ ที่เลวร้ายคุณอาจสร้างความเสียหายกับแผ่นดิสก์ของคุณถ้าคุณดึงปลั๊กเมื่อไม่ได้จอดหัว แต่ทุกวันนี้ไม่มีความเสียหายด้านฮาร์ดแวร์ใด ๆ ที่คุณสามารถทำได้ (อาจเป็นไปได้ ... อาจจะเป็น ... )

นั่นเป็นเพียงความเสียหายซอฟต์แวร์ การดึงปลั๊กกลางงานดิสก์ขนาดใหญ่อย่างชัดเจนนั้นเป็นแผนที่ไม่ดี แต่ถ้าเครื่องไม่ได้ใช้งานคุณได้บันทึกเอกสารที่เปิดอยู่ของคุณและคุณได้ทำการsyncล้างข้อมูลบัฟเฟอร์การเขียนแล้วการปิดเครื่องทันที เหตุการณ์ไม่น่าจะเจ็บมาก ไม่ว่าในกรณีใด ๆ หลังจากhaltซอฟต์แวร์ไม่สามารถทำอะไรได้มากกว่านี้ดังนั้นความเสียหายที่กำลังจะเกิดขึ้นได้ทำไปแล้ว

แน่นอนมันคือจุดที่สงสัยทั้งหมดเพราะhaltเป็นเพียงคำพ้องความหมายshutdown -H nowซึ่งจะทำการปิดระบบที่เหมาะสมและสง่างามของกระบวนการและบริการทั้งหมดที่กำลังทำงานอยู่ซิงค์ข้อมูลทั้งหมดและยกเลิกการต่อเชื่อมระบบไฟล์ทั้งหมด

สำหรับอุปกรณ์ฮาร์ดแวร์อื่น ๆ พวกเขายังคงเปิดใช้งานอยู่ หน้าจอจะยังคงแสดงสิ่งที่อยู่บนหน้าจอก่อนที่ CPU จะหยุด แฟน ๆ จะยังคงทำสิ่งที่พวกเขาทำต่อไปโดยไม่มีการควบคุมซอฟต์แวร์ ดิสก์จะทำทุกสิ่งที่โปรไฟล์พลังงานที่สามารถกำหนดค่าได้บอกว่าจะทำ

ในความเป็นจริงขึ้นอยู่กับเครื่องของคุณซีพียูอาจไม่ถูกปิด - มันอาจกำลังยุ่งอยู่กับการวนรอบไม่มีที่สิ้นสุดรอให้ใครบางคนกดปุ่มรีเซ็ต


upvote นี่เป็นความจริงทางเทคนิคอย่างแน่นอน imho ครั้งเดียวที่ฉันจะ "แค่ดึงปลั๊ก" จะเป็นถ้ามันไม่ตอบสนอง - และในกรณีที่ฉันเหลือเพียงแค่อธิษฐานที่ซิงค์เสร็จแล้ว "พอ" - โชคดีวันนี้อัตราต่อรองอยู่ในความโปรดปรานอย่างมาก ของ Linux ทำให้ระบบไฟล์สมบูรณ์ และแน่นอนนี่คือเหตุผลที่เราเก็บสำรองข้อมูลด้วย
SDsolar

4

ฉันอยากจะแนะนำกับมัน ในขณะที่บาง / นามแฝงมากที่สุดระบบปฏิบัติการที่ทันสมัยhaltเพื่อshutdown -h nowมันคือการปฏิบัติที่ไม่ดีที่จะพึ่งพาว่า

ในรูปแบบที่แท้จริงhaltคือการหยุดทำงานอย่างกระทันหันของกิจกรรม CPU ทั้งหมดและได้รับการออกแบบมาเพื่อเรียกใช้โดยrc.dในinit 0runlevel หลังจากที่ระบบรันลำดับการปิดที่เหมาะสมเท่านั้น ... ในขณะที่คุณซิงค์ดิสก์ซึ่งจะใช้เวลา การดูแลความเสี่ยงต่อความเสียหายของข้อมูลส่วนใหญ่ยังคงมีการล้างข้อมูลมากขึ้น (unmounts FS, lockfiles ฯลฯ ) ที่เกี่ยวข้องกับการปิดระบบที่เหมาะสม

นอกจากนี้คุณยังเสี่ยงต่อการที่บางกระบวนการเริ่มทำสิ่งที่สำคัญระหว่างsyncและการhaltโทรไม่ว่าคุณจะเชื่อมโยงพวกเขาเร็วแค่ไหน

แนวปฏิบัติที่เหมาะสมที่สุดคือการเรียกใช้shutdown -h nowซึ่งจะหยุดกระบวนการและ daemons ทั้งหมดยกเลิกการติดตั้งระบบไฟล์และในที่สุดก็ทำให้ระบบอยู่ในสถานะหยุดการทำงานเดียวกัน จากนั้นคุณสามารถลบพลังงานได้อย่างปลอดภัย วิธีนี้ยังมีประโยชน์ในการเรียกใช้คำสั่งปิด ACPI (ในระบบสนับสนุน ACPI ที่ทันสมัย) ซึ่งทำให้ PSU ตัดกำลังไฟ (ดังนั้นการหยุดพัดลมและทุกอย่างอื่น) ไม่เหมือน (จริง) haltซึ่งไม่ได้ออกคำสั่ง ACPI ใด ๆ และจะ ไม่ใช้งาน CPU โดยที่ทุกอย่างยังเปิดอยู่


0

ใช่นั่นคือจุดประสงค์ของhaltคำสั่ง มันทำให้กิจกรรมทั้งหมดหยุด

คำสั่งเหล่านี้ปิดระบบโดยทันทีเพื่อเตรียมพร้อมสำหรับการปิดเครื่อง:

  • sudo shutdown -h ตอนนี้
  • sudo poweroff
  • sudo halt
  • sudo init 0

สังเกตเห็นไฟแสดงสถานะฮาร์ดไดรฟ์

หากมีกิจกรรมแสดงว่าระบบยังทำงานอยู่ มันจะหยุดในไม่ช้าหลังจากคำสั่งเหล่านี้

เมื่อมันหยุดกะพริบคุณก็จะรู้ว่ามันกำลังปิดลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.