โฮมเพจ » ทำอย่างไร » อะไรคือ Runlevels บน Linux?

    อะไรคือ Runlevels บน Linux?

    เมื่อระบบ Linux บูทระบบจะเข้าสู่ runlevel เริ่มต้นและรันสคริปต์เริ่มต้นที่เชื่อมโยงกับ runlevel นั้น นอกจากนี้คุณยังสามารถสลับไปมาระหว่าง runlevels - ตัวอย่างเช่นมี runlevel ที่ออกแบบมาสำหรับการกู้คืนและการดำเนินการบำรุงรักษา.

    ตามเนื้อผ้าลินุกซ์ใช้สคริปต์เริ่มต้นในรูปแบบ System V - ในขณะที่ระบบเริ่มต้นใหม่จะทำให้ runlevels แบบดั้งเดิมล้าสมัยในที่สุด ตัวอย่างเช่นระบบ Upstart ของ Ubuntu ยังคงใช้สคริปต์ V-style ดั้งเดิม.

    Runlevel คืออะไร?

    เมื่อระบบลีนุกซ์มันจะเปิดขึ้น ในนั้น กระบวนการ init รับผิดชอบในการเรียกใช้กระบวนการอื่น ๆ บนระบบ ตัวอย่างเช่นเมื่อคุณเริ่มคอมพิวเตอร์ Linux เคอร์เนลจะเริ่มต้น init และเริ่มดำเนินการสคริปต์เริ่มต้นเพื่อเริ่มต้นฮาร์ดแวร์ของคุณเปิดเครือข่ายขึ้นเริ่มเดสก์ท็อปกราฟิกของคุณ.

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

    โดยเฉพาะอย่างยิ่ง init เรียกใช้สคริปต์ที่อยู่ในไดเรกทอรีเฉพาะที่สอดคล้องกับ runlevel ตัวอย่างเช่นเมื่อคุณป้อน runlevel 3 บน Ubuntu, init จะเรียกใช้สคริปต์ที่อยู่ในไดเรกทอรี /etc/rc3.d.

    อย่างน้อยนี่เป็นวิธีการทำงานกับระบบเริ่มต้น System V แบบดั้งเดิม - การกระจาย Linux เริ่มแทนที่ระบบเก่า System V ในขณะที่การพุ่งพรวดของ Ubuntu ยังคงรักษาความเข้ากันได้กับสคริปต์เริ่มต้น SysV สิ่งนี้มีแนวโน้มที่จะเปลี่ยนแปลงในอนาคต.

    The Runlevels

    runlevels บางตัวเป็นมาตรฐานระหว่างลีนุกซ์ดิสทริบิวชั่น, ในขณะที่บาง runlevels นั้นแตกต่างจากการแจกจ่ายไปยังการแจกจ่าย.

    runlevels ต่อไปนี้เป็นมาตรฐาน:

    • 0 - หยุด (ปิดระบบ)
    • 1 - โหมดผู้ใช้คนเดียว (ระบบบูตเข้าสู่โหมด superuser โดยไม่ต้องเริ่มดีมอนหรือเครือข่ายเหมาะสำหรับการบูตเข้าสู่สภาพแวดล้อมการกู้คืนหรือการวินิจฉัย)
    • 6 - Reboot

    Runlevels 2-5 แตกต่างกันไปขึ้นอยู่กับการกระจาย ตัวอย่างเช่นบน Ubuntu และ Debian, runlevels 2-5 เหมือนกันและจัดเตรียมโหมดผู้ใช้หลายคนพร้อมระบบเครือข่ายและการเข้าสู่ระบบแบบกราฟิก บน Fedora และ Red Hat runlevel 2 มีโหมดผู้ใช้หลายคนโดยไม่ต้องเชื่อมต่อเครือข่าย (เข้าสู่ระบบคอนโซลเท่านั้น), runlevel 3 มีโหมดผู้ใช้หลายคนที่มีเครือข่าย (เข้าสู่ระบบคอนโซลเท่านั้น), runlevel 4 ไม่ได้ใช้งานและ runlevel 5 การเชื่อมต่อเครือข่ายและกราฟิก.

    เปลี่ยนเป็น Runlevel ที่แตกต่างกัน

    หากต้องการสลับไปยังระดับ runlevel อื่นในขณะที่ระบบกำลังทำงานอยู่ให้ใช้คำสั่งต่อไปนี้:

    sudo telinit #

    แทนที่ # ด้วยจำนวนระดับ runlevel ที่คุณต้องการเปลี่ยน งด sudo และเรียกใช้คำสั่งเป็นรูทหากคุณใช้การแจกจ่ายที่ไม่ได้ใช้ sudo.

    การบูตโดยตรงกับ Runlevel ที่เจาะจง

    คุณสามารถเลือก runlevel เพื่อบู๊ตจากบูทโหลดเดอร์ - Grub เป็นต้น เมื่อเริ่มต้นกระบวนการบูตให้กดปุ่มเพื่อเข้าถึง Grub เลือกรายการบูตของคุณและกด e เพื่อแก้ไข.

    คุณสามารถเพิ่ม เดียว ไปยังจุดสิ้นสุดของ ลินุกซ์ บรรทัดเพื่อเข้าสู่ runlevel ผู้ใช้คนเดียว (runlevel 1) (กด Ctrl + x เพื่อบู๊ตหลัง) นี่เป็นตัวเลือกเดียวกับโหมดการกู้คืนใน Grub.

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


    ในขณะที่ Upstart daemon ของ Ubuntu ยังคงเลียนแบบระบบการเริ่มต้นของ SystemV ข้อมูลส่วนใหญ่จะเปลี่ยนแปลงในอนาคต ตัวอย่างเช่นการพุ่งพรวดเป็นไปตามเหตุการณ์ - มันสามารถหยุดและเริ่มบริการเมื่อมีเหตุการณ์เกิดขึ้น (ตัวอย่างเช่นบริการอาจเริ่มต้นเมื่ออุปกรณ์ฮาร์ดแวร์เชื่อมต่อกับระบบและหยุดเมื่อถอดอุปกรณ์ออก) Fedora ยังมีผู้สืบทอดอีกด้วย เพื่อเริ่มต้น systemd.