ทำไมเราต้องใช้ฟังก์ชั่นรีบูตในระบบไบนารีต่างกัน
shutdown -r
และ
reboot
หรือพวกเขาแตกต่างกันในบางสิ่ง?
ทำไมเราต้องใช้ฟังก์ชั่นรีบูตในระบบไบนารีต่างกัน
shutdown -r
และ
reboot
หรือพวกเขาแตกต่างกันในบางสิ่ง?
คำตอบ:
เราไม่จำเป็นต้องใช้ทั้งคู่ แต่เรามีทั้งคู่เพราะประวัติของ Unix และความหลากหลายของเวอร์ชัน
จากหน้าคนของพวกเขา:
การปิดเครื่องนั้นมีวัตถุประสงค์ทั่วไปมากกว่าและมีประสิทธิภาพมากกว่าในขณะที่การรีบูตนั้นเป็นมิตรและจดจำได้ง่าย
การปิดระบบช่วยให้คุณสามารถระบุอาร์กิวเมนต์ชั่วคราว (เช่นรีสตาร์ทใน 5 นาที) และช่วยให้คุณทำหลายสิ่งนอกเหนือจากรีบูตรวมถึง:
แต่ถ้าคุณเพียงต้องการที่จะรีบูตระบบตอนนี้มันง่ายต่อการประเภทกว่าreboot
shutdown -r now
shutdown
ใช้งานบางรุ่นเป็นค่าเริ่มต้น อย่าพยายามขอความช่วยเหลือสำหรับการปิดระบบshutdown -h
โดยเฉพาะอย่างยิ่งไม่ได้อยู่บนเซิร์ฟเวอร์ในศูนย์ข้อมูล
ทั้งสองคำสั่งทำบางสิ่งบางอย่างที่แตกต่างกัน แต่พวกเขาสามารถจบลงเรียกแต่ละอื่น ๆ ซึ่งเป็นเหตุผลที่พวกเขาดูเหมือนจะทำสิ่งเดียวกัน!
reboot
จะเรียกใช้เคอร์เนลเพื่อเรียกการรีบูตฮาร์ดแวร์ อย่างไรก็ตามมันจะทำเช่นนี้ก็ต่อเมื่อระบบพร้อมสำหรับการปิด - daemons และกระบวนการทั้งหมดของผู้ใช้ควรจะหยุดการทำงานระบบไฟล์ไม่ได้ต่อเชื่อม ฯลฯ ดังนั้นมันจะตรวจสอบ runlevel ของระบบและถ้าไม่ใช่ 0 หรือ 6 มันจะเรียกจริงshutdown
คำสั่งสำหรับคุณ
shutdown
ทำให้ระบบ runlevel เปลี่ยนไป การเปลี่ยนแปลง runlevel (เป็น 0 สำหรับ halt หรือ 6 สำหรับ reboot) รันสคริปต์จำนวนมากใน /etc/rc0.d หรือ rc6.d ที่ปิดการทำงานของ daemons, unmount ระบบไฟล์ ฯลฯ ในที่สุดสคริปต์เหล่านี้จะเรียกใช้halt
หรือreboot
- คราวนี้ระบบอยู่ใน runlevel ที่ถูกต้องและพวกเขาแนะนำให้เคอร์เนลรีบูท (หรือหยุด)
นอกจากสิ่งที่ภาพพจน์เขียนมีความแตกต่างที่สำคัญระหว่างสองโปรแกรมshutdown
อยู่ใน/sbin
ขณะที่อยู่ในreboot
/usr/bin
ทำไมเรื่องนี้คุณถาม ฉันจะบอกคุณ.
สิ่งที่อยู่ภายใต้/usr
คือสิ่งที่ไม่จำเป็นต้องพร้อมใช้งานจนกว่าระบบจะบูตขึ้นมาไกลพอที่ระบบจะทำงานได้น้อยที่สุด ไดเรกทอรีระดับบนสุดที่มีประเพณีที่ไม่เคยติดตั้งอยู่บนระบบไฟล์ที่แยกต่างหาก - /bin
, /etc
, /sbin
ฯลฯ - ที่คาดว่าจะสามารถใช้ได้ในขณะที่ระบบนี้เป็นถึงรัฐที่มีประโยชน์น้อยที่สุด มีความหมายต่าง ๆ ของการออกแบบนี้; เช่นมันเป็นรูปแบบที่ดีที่จะเขียน "หยุด" ประโยคของสคริปต์ init SysV ว่าโปรแกรมการใช้งานใน/usr/bin
กรณีที่มีทางเลือกในหรือ/bin
/sbin
shutdown
เป็นยูทิลิตีที่สำคัญซึ่งมีอยู่เสมอ reboot
เป็นเครื่องมืออำนวยความสะดวกเท่านั้น
reboot
อยู่ใน/sbin
Debian (พร้อม SysVinit) และ Ubuntu (พร้อมพุ่งพรวด)