ทำไมเราต้องใช้ฟังก์ชั่นรีบูตในระบบไบนารีต่างกัน
shutdown -r
และ
reboot
หรือพวกเขาแตกต่างกันในบางสิ่ง?
ทำไมเราต้องใช้ฟังก์ชั่นรีบูตในระบบไบนารีต่างกัน
shutdown -r
และ
reboot
หรือพวกเขาแตกต่างกันในบางสิ่ง?
คำตอบ:
เราไม่จำเป็นต้องใช้ทั้งคู่ แต่เรามีทั้งคู่เพราะประวัติของ Unix และความหลากหลายของเวอร์ชัน
จากหน้าคนของพวกเขา:
การปิดเครื่องนั้นมีวัตถุประสงค์ทั่วไปมากกว่าและมีประสิทธิภาพมากกว่าในขณะที่การรีบูตนั้นเป็นมิตรและจดจำได้ง่าย
การปิดระบบช่วยให้คุณสามารถระบุอาร์กิวเมนต์ชั่วคราว (เช่นรีสตาร์ทใน 5 นาที) และช่วยให้คุณทำหลายสิ่งนอกเหนือจากรีบูตรวมถึง:
แต่ถ้าคุณเพียงต้องการที่จะรีบูตระบบตอนนี้มันง่ายต่อการประเภทกว่าrebootshutdown -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อยู่ใน/sbinDebian (พร้อม SysVinit) และ Ubuntu (พร้อมพุ่งพรวด)