การรีบู๊ตเหมือนกับ init 6 หรือไม่


22

รีบูทเหมือนกับ init 6 สำหรับ Ubuntu หรือไม่

ฉันใช้ Ubuntu 12.04 ใน Amazon EC2 เมื่อฉันพิมพ์ลงในกล่องฉันสามารถพิมพ์runlevelและฉันจะได้รับ:

N 2

ดูที่man rebootฉันเห็นว่า:

เมื่อเรียกด้วย --force หรือเมื่ออยู่ใน runlevel 0 หรือ 6 เครื่องมือนี้จะเรียกใช้การรีบูตระบบ (2) เรียกตัวเองและรีบูตระบบโดยตรง มิฉะนั้นจะเรียกใช้เครื่องมือการปิด (8) พร้อมอาร์กิวเมนต์ที่เหมาะสม

ถ้าฉันอ่านman shutdown 8ฉันเห็น:

การปิดระบบจะทำให้ระบบถูกนำไปใช้อย่างปลอดภัย ผู้ใช้ที่เข้าสู่ระบบทั้งหมดจะได้รับแจ้งว่าระบบกำลังจะปิดตัวลงและภายในห้านาทีสุดท้ายของเวลา TIME จะมีการป้องกันการลงชื่อเข้าใช้ใหม่

ความเข้าใจพื้นฐานของฉันเกี่ยวกับความแตกต่างระหว่างrebootและinit 6คือ:

  • ใน distros อื่น ๆ และ distros ที่เก่ากว่าอาจrebootเพียงแค่ unmount ดิสก์และสะบัดสวิตช์ไฟโดยไม่ต้องเรียกใช้สคริปต์การปิดระบบ
  • init 6จะเรียกใช้สคริปต์การปิดทั้งหมดใน/etc/init/rc.*ขณะที่มันลด runlevel ของระบบ
  • ใน Ubuntu รุ่นใหม่กว่าrebootคำสั่งที่ไม่มี--forceหรือ-fจะเรียกใช้คำสั่งปิดซึ่งโดยทั่วไปจะทำสิ่งเดียวกันinit 6
  • อาจเป็นการดีกว่าถ้าคุณใช้นิสัยแบบเดิมinit 6แทนrebootเพราะปลอดภัยกว่าและทำงานได้ดีกว่า cross-distro แต่rebootมีการเปลี่ยนแปลงพฤติกรรมเริ่มต้นของการลองและป้องกันข้อผิดพลาด / dataloss ถ้ามีคนใช้งาน

มันเกี่ยวกับใช่มั้ย ถ้าไม่ฉันจะพลาดอะไร

คำตอบ:


23

ไม่มีเหตุผลที่น่าสนใจจริงๆที่จะใช้init 6แทนrebootยกเว้น:

  • ด้วยเหตุผลบางอย่างที่คุณขาดหายไปจากrebootปฏิบัติการหรือ
  • คุณพยายามหลีกเลี่ยงการแจ้งเตือนผู้ใช้ว่าระบบหยุดทำงาน

reboot(ตราบใดที่คุณไม่ได้ทำงานreboot --force) เป็นวิธีที่ "เบาลง" ในการปิดเครื่อง

พิจารณา:

init 6จะเรียกใช้สคริปต์การปิดทั้งหมดใน/etc/init/rc.*ขณะที่มันลด runlevel ของระบบ

แต่คำสั่งเรียกโดยไม่ต้องธงโดยตรงเรียบระบบ (ผ่านสายระบบ ) เมื่อหนึ่งในจำนวนนี้สองสถานการณ์ที่นำไปใช้:reboot--forcereboot

  • ระบบอยู่ในrunlevel 0 (โหมดผู้ใช้คนเดียว) ดังนั้นจึงไม่มีการลด runlevel ที่สามารถเกิดขึ้นได้ดังนั้นจึงไม่มีสคริปต์การปิดระบบที่รันโดยอัตโนมัติ
  • ระบบอยู่ในระดับการทำงาน 6. อะไรinit 6ไม่ได้ที่จะนำระบบในระดับการทำงาน 6.อีกครั้งมีอะไรที่ทำงานinit 6จะทำอย่างนั้นเรียกใช้rebootคำสั่งจะไม่ทำ

มิฉะนั้นจะเทียบเท่ากับsudo reboot sudo shutdown -r nowสิ่งนี้ทำทุกสิ่งได้ดีsudo init 6แต่ยัง:

  • แจ้งผู้ใช้ว่าระบบหยุดทำงาน
  • ป้องกันการเข้าสู่ระบบใหม่ (แม้ว่าพวกเขาอาจจะไม่ประสบความสำเร็จ)
  • sudo init 6ใช้งานง่ายมากขึ้นและการจัดเก็บเอกสารด้วยตัวเองมากกว่า

หากคุณอยู่ในระบบที่มีเพียงคุณเข้าสู่ระบบและเข้าสู่ระบบในเครื่องเท่านั้นไม่มีอะไรผิดปกติในการใช้init 6เพื่อรีบูต หากนั่นเป็นวิธีที่คุณต้องการรีบูทคุณไม่ต้องทำอะไรเลยโดยทำเช่นนั้น แต่ก็ไม่มีอะไรที่ดีกว่าการทำแบบนี้

initเอกสารของตัวเองบอกว่าไม่ใช่วิธีปกติในการปิดหรือรีบูตระบบ พิจารณาว่าเมื่อผู้initใช้รัน (เช่นเมื่อคุณรันsudo init 6) ผู้ใช้ก็จะทำงานtelinit(ดูman init) telinitเป็นสิ่งที่เปลี่ยนแปลง runlevels จริง ๆ และman telinitบอกเราว่า:

โดยปกติคุณจะต้องใช้เครื่องมือ ปิดเครื่อง (8) เพื่อหยุดหรือรีบูทระบบหรือเพื่อให้ระบบอยู่ในโหมดผู้ใช้คนเดียว


ฉันมี Alienware X51 dell pc ที่ฉันติดตั้ง Ubuntu 13.04 และเคอร์เนล 3.11 เมื่อฉันทำ $ init 6 มันจะรีบูตและบางครั้ง BIOS จะแสดงตลอดไป เป็นเพราะฉันใช้ init 6 และไม่ใช่คำสั่ง reboot?

1
@YumYumYum ฉันไม่เห็นว่าทำไมการใช้init 6จะทำให้เกิดสิ่งนี้ เมื่อคุณใช้rebootแทนinit 6จะได้รับ BIOS หรือไม่
Eliah Kagan

1
ฉันได้อัปเดตเฟิร์มแวร์ BIOS จาก A00 เป็น A02 ตั้งแต่นั้นรีบูตหรือ init 6 ทั้งสองทำงานจึงดูเหมือนว่าปัญหา BIOS เป็น ขอขอบคุณ.

การทำงานrebootหยุดบางครั้งใน Ubuntu Server ของฉัน 14.02 ของผู้ใช้คนเดียวและเข้าสู่ระบบในท้องถิ่นเท่านั้น ปลอดภัยหรือไม่ที่ฉันจะทำsyncตามด้วยเสมอreboot -f?
user3549648
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.