ค้นหาเว็บไซต์

วิธีเปลี่ยน Runlevels (เป้าหมาย) ใน SystemD


Systemd เป็นระบบ init สมัยใหม่สำหรับ Linux: ระบบและบริการจัดการที่เข้ากันได้กับระบบ init SysV ยอดนิยมและสคริปต์ init LSB มีวัตถุประสงค์เพื่อเอาชนะข้อบกพร่องของ SysV init ตามที่อธิบายไว้ในบทความต่อไปนี้

  1. เรื่องราวเบื้องหลัง 'init' และ 'systemd': เหตุใด 'init' จึงจำเป็นต้องแทนที่ด้วย 'systemd' ใน Linux

บนระบบที่คล้ายยูนิกซ์ เช่น Linux สถานะการทำงานปัจจุบันของระบบปฏิบัติการเรียกว่า runlevel; มันกำหนดบริการระบบที่กำลังทำงานอยู่ ภายใต้ระบบ init ที่ได้รับความนิยม เช่น SysV init ระดับการรันจะถูกระบุด้วยตัวเลข อย่างไรก็ตาม ใน systemd runlevel จะเรียกว่า เป้าหมาย

การอ่านที่แนะนำ: การจัดการกระบวนการและบริการการเริ่มต้นระบบ (SysVinit, Systemd และ Upstart)

ในบทความนี้ เราจะอธิบายวิธีเปลี่ยน runlevels (เป้าหมาย) ด้วย systemd ก่อนที่เราจะไปไกลกว่านี้ เรามาดูรายละเอียดความสัมพันธ์ระหว่างตัวเลข ระดับการวิ่ง กับ เป้าหมาย กันก่อน

  • การรันระดับ 0 ถูกจับคู่โดย poweroff.target (และ runlevel0.target เป็นลิงก์สัญลักษณ์ไปยัง poweroff.target ).
  • การวิ่งระดับ 1 จับคู่โดย rescue.target (และ runlevel1.target เป็นลิงก์สัญลักษณ์ไปยัง rescue.target ).
  • ระดับการวิ่ง 3 ถูกจำลองโดย multi-user.target (และ runlevel3.target เป็นลิงก์สัญลักษณ์ไปยัง multi-user.target )
  • การวิ่งระดับ 5 ถูกจำลองโดย graphical.target (และ runlevel5.target เป็นลิงก์สัญลักษณ์ไปยัง graphical.target ).
  • การรันระดับ 6 ถูกจำลองโดย reboot.target (และ runlevel6.target เป็นลิงก์สัญลักษณ์ไปยัง reboot.target ).
  • เหตุฉุกเฉิน จับคู่กับ emergency.target

วิธีดูเป้าหมายปัจจุบัน (ระดับการรัน) ใน Systemd

เมื่อระบบบู๊ต ตามค่าเริ่มต้น systemd จะเปิดใช้งานหน่วย default.target งานหลักคือการเปิดใช้งานบริการและหน่วยอื่นๆ โดยการดึงเข้ามาผ่านการพึ่งพา

หากต้องการดูเป้าหมายเริ่มต้น ให้พิมพ์คำสั่งด้านล่าง

#systemctl get-default 

graphical.target

หากต้องการกำหนดเป้าหมายเริ่มต้น ให้รันคำสั่งด้านล่าง

systemctl set-default multi-user.target  

วิธีเปลี่ยนเป้าหมาย (ระดับรัน) ใน Systemd

ในขณะที่ระบบกำลังทำงาน คุณสามารถเปลี่ยนเป้าหมายได้ (ระดับการทำงาน) ซึ่งหมายความว่าเฉพาะบริการและหน่วยที่กำหนดไว้ภายใต้เป้าหมายนั้นเท่านั้นที่จะทำงานบนระบบ

หากต้องการเปลี่ยนเป็น runlevel 3 ให้รันคำสั่งต่อไปนี้

systemctl isolate multi-user.target 

หากต้องการเปลี่ยนระบบเป็น runlevel 5 ให้พิมพ์คำสั่งด้านล่าง

systemctl isolate graphical.target

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ systemd โปรดอ่านบทความที่เป็นประโยชน์เหล่านี้:

  1. วิธีจัดการบริการและหน่วย 'Systemd' โดยใช้ 'Systemctl' ใน Linux
  2. วิธีสร้างและเรียกใช้หน่วยบริการใหม่ใน Systemd โดยใช้เชลล์สคริปต์
  3. การจัดการกระบวนการและบริการการเริ่มต้นระบบ (SysViit, Systemd และ Upstart)
  4. จัดการข้อความบันทึกภายใต้ Systemd โดยใช้ Journalctl [คู่มือที่ครอบคลุม]

ในคู่มือนี้ เราได้แสดงวิธีเปลี่ยนระดับการทำงาน (เป้าหมาย) ด้วย systemd ใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อส่งคำถามหรือความคิดเกี่ยวกับบทความนี้ถึงเรา