ความแตกต่างระหว่างhalt
และshutdown
คำสั่งคืออะไร?
ความแตกต่างระหว่างhalt
และshutdown
คำสั่งคืออะไร?
คำตอบ:
โดยทั่วไปคนหนึ่งใช้คำสั่งshutdown
อนุญาตให้มีการหน่วงเวลาและข้อความเตือนก่อนปิดหรือรีบูตซึ่งเป็นสิ่งสำคัญสำหรับการบริหารระบบของเซิร์ฟเวอร์เชลล์ผู้ใช้หลายคน สามารถแจ้งให้ผู้ใช้ทราบล่วงหน้าถึงการหยุดทำงาน
ดังนั้นต้องใช้คำสั่ง shutdown เช่นนี้เพื่อหยุด / ปิดคอมพิวเตอร์ทันที (บน Linux และ FreeBSD อย่างน้อย):
shutdown -h now
หรือรีบูตเครื่องด้วยการเตือนล่วงหน้า 30 นาทีตามกำหนดเอง:
shutdown -r +30 "Planned software upgrades"
หลังจากการหน่วงเวลาshutdown
บอกinit
ให้เปลี่ยนเป็น runlevel 0 (halt) หรือ 6 (reboot) (โปรดทราบว่าการละเว้น-h
หรือ-r
จะทำให้ระบบเข้าสู่โหมดผู้ใช้คนเดียว (runlevel 1) ซึ่งฆ่ากระบวนการของระบบส่วนใหญ่ แต่ไม่ได้หยุดระบบจริง ๆ แต่ก็ยังช่วยให้ผู้ดูแลระบบยังคงเข้าสู่ระบบในฐานะ root)
เมื่อกระบวนการของระบบถูกฆ่าและระบบไฟล์ถูกถอนการติดตั้งระบบจะหยุดทำงาน / ปิดเครื่องหรือบูตใหม่โดยอัตโนมัติ สิ่งนี้ทำโดยใช้คำสั่งhalt
orreboot
ซึ่งซิงค์การเปลี่ยนแปลงดิสก์แล้วทำการหยุด / ปิดเครื่องจริงหรือรีบูต
บน Linux หากhalt
หรือreboot
ทำงานเมื่อระบบยังไม่ได้เริ่มกระบวนการปิดระบบจะเรียกใช้shutdown
คำสั่งโดยอัตโนมัติแทนที่จะดำเนินการตามที่ตั้งใจไว้โดยตรง อย่างไรก็ตามในระบบเช่น FreeBSDคำสั่งเหล่านี้ครั้งแรกที่เข้าสู่ระบบการดำเนินการในwtmp
แล้วจะทันทีดำเนินการหยุด / รีบูตตัวเองโดยไม่ต้องฆ่ากระบวนการหรือ unmounting filesystems
halt
, reboot
และshutdown
โปรแกรมที่เรียกอีกคนหนึ่ง มีโปรแกรมเดียวหนึ่งโปรแกรมที่มีตัวแยกบรรทัดคำสั่งจำนวนมากที่ช่องทางเข้าสู่เส้นทางรหัสเดียวภายใน ไม่ได้มีระดับการทำงาน การปิดเครื่องไม่เข้าสู่โหมดผู้ใช้คนเดียว อันที่จริงโหมดผู้ใช้คนเดียวได้ถูกเปลี่ยนชื่อแล้ว ดูรายละเอียดunix.stackexchange.com/a/196014/5132
ในช่วงปี 1980, BSDs มีhalt
, และreboot
shutdown
ระบบ 5 UNIX มีชุดเครื่องมือความเข้ากันได้ BSD แต่โดยกำเนิดแล้วมันมีshutdown
คำสั่งต่างกัน และไม่มีhalt
หรือreboot
เลย (บางรุ่นในระบบ 5 มีสิ่งต่าง ๆ เช่น SCO XENIX haltsys
)
BSD halt
และreboot
คำสั่งอยู่ในระดับต่ำรุนแรงและทันที นึกถึงวิธีที่จะปิดระบบ BSD เป็นshutdown
คำสั่งซึ่งทำทุกสิ่งที่หนึ่งที่คาดว่าจะเกิดขึ้น: wall
ข้อความไปยังผู้ใช้บริการที่ถูกฆ่าตายอย่างสง่างาม, รายการบันทึกเป็นลายลักษณ์อักษรการเข้าสู่ระบบปิดการใช้งานและอื่น ๆ
ในขณะที่ BSD นั้นส่วนใหญ่เป็นที่ซึ่งภูมิปัญญาที่ได้รับนั้นเกิดขึ้นว่า " shutdown
execs halt
/ reboot
" และอย่างหลังนั้นจะต้องใช้ด้วยความระมัดระวัง มันเป็นระบบ 5 ในโลกที่ผู้คนได้เรียนรู้นิสัยตรงกันข้ามว่าhalt
/ reboot
มี shorthands เพียงที่มีประโยชน์และไม่มีอะไรเพิ่มเติม: /usr/ucb/halt
จาก "แพคเกจความเข้ากันได้ BSD" shutdown -h
ก็ไม่แตกต่างกันในผลกระทบต่อ init 0
พวกเขาทั้งสองสิ้นสุดการทำ
halt
. 1982/05/11 4.2BSD manualhaltsys
. 2005/06/03 คู่มือ SCO OpenServerทุกวันนี้เรามีชุดเครื่องมือการจัดการระบบที่เป็นไปได้มากมาย BSD ยังคงมีชุดเครื่องมือของพวกเขาแม้ว่าจะถูกกำจัดจาก AT & Tisms ที่เป็นไปได้ใด ๆ ในปี 1990 Miquel van Smoorenburg ในปี 1992 (อีกครั้ง) เขียน Linux init
+ rc
และเครื่องมือที่เกี่ยวข้องซึ่งตอนนี้ผู้คนเรียกว่า "System 5 init" แม้ว่ามันจะไม่ใช่ซอฟต์แวร์จาก UNIX System 5 (และไม่ใช่แค่init
) นอกจากนี้ยังมีsystemd , พุ่งพรวดและNoshแต่ละที่มีการใช้งานของตัวเองของhalt
, reboot
, fasthalt
, fastboot
และอื่น ๆ
ชุดเครื่องมือได้เติบโตขึ้นและเปลี่ยนแปลงไปเช่นกัน ขณะนี้มีpoweroff
คำสั่งซึ่งไม่ได้มีอยู่ในระบบปฏิบัติการยุค 1980 เนื่องจากหน่วยประมวลผลกลางในเครื่องที่ทันสมัยส่วนใหญ่ไม่มีวิธีควบคุมอุปกรณ์ไฟฟ้า ชุดเครื่องมือ Linux โดยเฉพาะได้รับคำสั่ง BSD; แต่เช่นเดียวกับเครื่องมือความเข้ากันได้ BSD ใน UNIX System 5 พวกเขาไม่ได้ทำงานจริงและสิ่งต่าง ๆ ได้รับการแบนส่วนใหญ่
แฟบนี้ได้นำเราไปยังจุดที่halt
และshutdown
เป็นส่วนใหญ่เหมือนกัน แต่รายละเอียดที่แน่นอนแตกต่างจากชุดเครื่องมือไปยังชุดเครื่องมือและกลไกของชุดเครื่องมือแต่ละชุดนั้นแตกต่างกันเล็กน้อย
นอกจากนี้ยังได้นำเราไปยังตำแหน่งที่น่าอายเล็กน้อยที่ชุดคำสั่งนี้ได้กลายเป็นประดับเพื่อให้มีตัวเลือกความเข้ากันได้ว่าตอนนี้จะช่วยให้คนที่จะให้คอมพิวเตอร์คำแนะนำตัวเองขัดแย้งเหมือนreboot --halt
และpoweroff --reboot
ที่ผมระบุไว้ในหน้าคู่มือสำหรับ Nosh halt
, fasthalt
, reboot
, fastboot
, และpoweroff
คำสั่ง ☺
halt
, reboot
, poweroff
, telinit
และshutdown
มีทุกโปรแกรมหนึ่ง จริงๆแล้วมันเป็นsystemctl
โปรแกรมของ systemd มันมีตัวแยกวิเคราะห์บรรทัดคำสั่งหลายคำสั่งสำหรับไวยากรณ์บรรทัดคำสั่งต่าง ๆ ของคำสั่งเหล่านั้นรวมถึงตัวของมันเอง แต่หลังจากนั้นช่องทางส่วนใหญ่จะกลายเป็นเส้นทางรหัสหนึ่งภายใน ไม่มีความแตกต่างระหว่างการใช้halt
และตัวเลือกคำสั่งเพื่อเรียกใช้การกระทำและการใช้shutdown
และตัวเลือกคำสั่งเพื่อเรียกใช้การกระทำเดียวกัน
systemd ไม่พิจารณาโหมดช่วยเหลือ (ซึ่งเป็นสิ่งที่คน systemd เปลี่ยนชื่อผู้ใช้โหมดเดียว ) เป็นสถานะระบบปิดและไม่สามารถเข้าถึงได้ด้วยคำสั่งใด ๆ เหล่านี้ ตัวเลือกน้อยเป็นเช่นเดียวกับshutdown now
poweroff
BSD ส่วนใหญ่เก็บความหมายของยุค 80 halt
และshutdown
ดังนั้นจึงไม่เหมือนกันมากในชุดเครื่องมือของพวกเขา halt
และreboot
เป็นหนึ่งโปรแกรมเดียว; และยังคงอยู่ในระดับต่ำทันทีและรุนแรง ในขณะที่shutdown
และpoweroff
หนึ่งโปรแกรมเดียวทำสิ่งที่นึกถึงทั้งหมดเช่นการปิดระบบตามกำหนดเวลาการเขียนwall
ข้อความการกระทำการบันทึกการปิดใช้งานการเข้าสู่ระบบและอื่น ๆ
ในชุดเครื่องมือ BSD shutdown
/ poweroff
สิ้นสุดการเรียกใช้halt
/ reboot
เพื่อแสดงการเปลี่ยนแปลงสถานะของระบบขั้นสุดท้าย (มักจะไม่ถูกต้องในปัจจุบัน) ได้รับภูมิปัญญาที่ " shutdown
execs halt
/ reboot
" ในความเป็นจริงยังคงถือใน NetBSD และ OpenBSD แต่ใน FreeBSD / TrueOS / DragonFlyBSD มันเป็นกรณีเฉพาะถ้าใช้-o
ตัวเลือก เมื่อวันที่ BSDs เหล่านี้ทั้งในโปรแกรมเหล่านี้ได้ตามปกติตราการเปลี่ยนแปลงสถานะของระบบขั้นสุดท้ายด้วยการส่งสัญญาณต่างๆ ( INT
, USR1
และUSR2
) ในการประมวลผลที่ # 1 init
ทำการจัดการสถานะระบบทั้งหมดบนระบบเหล่านี้
ทั้งหมดของพวกเขาตัวเลือกน้อยshutdown now
จะไม่เทียบเท่ากับการใด ๆhalt
, หรือreboot
poweroff
มันเปลี่ยนเป็นโหมดผู้ใช้คนเดียว BSD ซึ่งหนึ่งสามารถเปลี่ยนกลับไปเป็นโหมดผู้ใช้หลายคน
shutdown
. คู่มือการใช้งานระบบการจัดการของ หน้าคู่มือ NetBSD 2011/11/04reboot
,halt
. หน้าคู่มือ OpenBSD 2016/09/03shutdown
. หน้าคู่มือ FreeBSD 2016/09/21reboot
, halt
,fastboot
fasthalt
, หน้าคู่มือ FreeBSD 2017/03/19shutdown
. คู่มือการใช้งานระบบการจัดการของ หน้าคู่มือ DragonFlyBSD 2016/09/29reboot
, halt
,fastboot
fasthalt
, คู่มือการใช้งานระบบการจัดการของ หน้าคู่มือ DragonFlyBSD 2016/09/29ในชุดเครื่องมือ Nosh จัดการระบบhalt
, fasthalt
, poweroff
, fastpoweroff
, reboot
และfastboot
มีทั้งหมดโปรแกรมหนึ่ง มันเป็นความเข้ากันได้แบบย้อนหลังที่โดยปกติจะเชื่อมโยงกับshutdown
สิ่งที่ตรงกันข้ามกับภูมิปัญญาที่ได้รับ --force
ตัวเลือกที่จะทำให้ห่วงโซ่การsystem-control
แทน
ดังนั้นจึงมีไม่แตกต่างกัน (ขาด--force
) ระหว่างhalt
คำสั่งและshutdown
คำสั่ง (มีตัวเลือกที่เทียบเท่า) ในชุดนี้เป็นชุดของ "BSD / 5 ระบบการทำงานร่วมกัน" คำสั่งนี้เป็นเพียงชั้น shim shutdown
บางกว่าด้านบนของ
shutdown
. หน้าคู่มือเครื่องมือ โปรแกรมtelinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
หน้าคู่มือเครื่องมือ โปรแกรมเช่นเดียวกับ nosh ในชุดเครื่องมือจัดการระบบพุ่งพรวดตรงกันข้ามกับภูมิปัญญา BSD ที่ได้รับจะถูกนำไปใช้ halt
,, reboot
และpoweroff
เป็นหนึ่งโปรแกรมทั้งหมดที่เชื่อมโยงกับshutdown
; ยกเว้นว่าใช้--force
ตัวเลือกซึ่งทำให้reboot()
ระบบเรียกใช้ตัวเอง
ดังนั้นอีกครั้งไม่มีความแตกต่าง (ขาด--force
) ระหว่างhalt
คำสั่งและshutdown
คำสั่ง (พร้อมตัวเลือกเทียบเท่า) ในชุดเครื่องมือนี้ นอกจากนี้ยังมีอีกตัวเลือกน้อยshutdown now
(ซึ่งไม่มีใครhalt
, reboot
หรือpoweroff
สามารถท้ายกล่าวอ้างเช่นที่พวกเขาทั้งหมดตั้งค่าตัวเลือก) นำระบบเข้าสู่โหมดผู้เดียวมากกว่าปิดมันลง
shutdown
หน้าคู่มือ Ubuntureboot
(8) halt
(8)poweroff
(8) หน้าคู่มือ Ubuntuinit
+rc
อีกครั้งในชุดนี้ตรงข้ามของภูมิปัญญา BSD ได้รับใช้และhalt
และreboot
ก็ห่วงโซ่shutdown
- ถ้าระบบที่มีอยู่แล้วใน poweroff หรือหยุด "ทำงานระดับ" ซึ่งในกรณีนี้คำสั่งเหล่านี้จริงออกพระราชกำหนดการเปลี่ยนแปลงสถานะของระบบขั้นสุดท้าย โซ่หันไปshutdown
init
ดังนั้นอีกครั้งไม่มีความแตกต่าง (ยกเว้นว่าระบบได้ปิดตัวลงส่วนใหญ่แล้ว ) ระหว่างhalt
และshutdown
เพราะในอดีตเพียงแค่เรียกหลัง และใช่อีกตัวเลือกน้อยshutdown now
(ซึ่งไม่มีใครhalt
, reboot
หรือpoweroff
สามารถท้ายกล่าวอ้างเช่นที่พวกเขาทั้งหมดตั้งค่าตัวเลือก) นำระบบเข้าสู่โหมดผู้เดียวมากกว่าปิดมันลง
ฉันสงสัยว่าสิ่งนี้ขึ้นอยู่กับรุ่นของ UNIX / Linux ที่คุณใช้งานอยู่ บน Centos (และฉัน expec Linux อื่น ๆ ที่ทันสมัย) หยุดการโทร (ถ้าคุณไม่ได้อยู่ที่runlevel 0 หรือ 6) ดังนั้นระบบของคุณจะถูกปิดอย่างสมบูรณ์ บน Solaris 10 หยุดโหดร้ายมากขึ้นก็เพียงแค่วูบวาบแคชดิสก์และอำนาจนอกระบบ - ไม่พยายามที่จะทำเพื่อเรียกใช้สคริปต์หรือปิดSMFสิ่งอำนวยความสะดวก
สำหรับผู้ที่ใช้ AWS EC2: บน AWS shutdown
หยุดอินสแตนซ์เมื่อhalt
ยกเลิกมัน
ใน linux "halt" และ "reboot" เป็นนามแฝงของคำสั่ง shutdown - shutdown -h
และshutdown -r
ตามลำดับ การปิด Bareword โดยทั่วไปจะถือว่า -h
aliases
อยู่ในความรู้สึกของนามแฝงเปลือก แต่ใช่halt
พื้นเพียงเรียกร้องshutdown -h
และวิ่งreboot
shutdown -r
โปรดทราบว่าถ้าคุณผ่าน-f
(แรง) ตัวเลือกhalt
หรือreboot
, shutdown
จะไม่เรียกว่า
sendmail
คำสั่ง ณ จุดนี้ - เช่นเดียวกับ MTA มันไม่สำคัญว่าระบบ init ใดที่คุณใช้เพราะพวกเขาทั้งหมดจะรับรู้ทั้งสองshutdown
และhalt
เป็นเช่นนั้น
sendmail
คำสั่งด้วย มันเหมือนกับsendmail
คำสั่ง แต่ไม่ใช่ในแบบที่คุณคิด