ฉันจะเปลี่ยน runlevel บน systemd ได้อย่างไร?


27

ค่อนข้างง่ายฉันกำลังพยายามเปลี่ยนระดับน้ำไหล ทุกสิ่งที่ฉันพบออนไลน์จะนำฉันไปยังไฟล์ที่อยู่ใน:

/etc/init/rc-sysinit.conf

ที่นี่ฉันได้ลองเปลี่ยน "DEFAULT_RUNLEVEL" เป็น 3 หรืออย่างอื่นและมันก็ไม่ได้ทำให้เกิดความแตกต่าง (ค่าเดิมคือ 2 ซึ่งไม่สมเหตุสมผลมากนัก) เครื่องของฉันบูทเต็มที่และเมื่อฉันตรวจสอบคำสั่ง runlevel ฉันเห็น "N 5" เป็นผลทุกครั้ง

ฉันจะเปลี่ยน runlevel ได้อย่างไร ฉันจะไม่แทนที่มันผ่านด้วงหรือกลไกการแก้ปัญหาอื่น ๆ และฉันไม่ได้มองหาวิธีปิดการใช้งาน X โดยเฉพาะ

คำแนะนำทั้งหมดที่ฉันค้นหาทางออนไลน์นั้นค่อนข้างเก่าไปหน่อยมีอะไรเปลี่ยนแปลงกับ 16.04 ไหม


ดังนั้นคุณต้องการที่จะเปลี่ยนมันด้วยตนเองหลังจากที่บูตหรือบูตโดยอัตโนมัติเพื่อ runlevel ที่แตกต่างกันทุกครั้งหรือไม่
ผู้บัญชาการ Byte

อัตโนมัติทุกครั้ง มันถูกติดตั้งกับเดสก์ท็อปอูบุนตู แต่ตอนนี้ฉันอยากจะลดระดับ runlevel และวางไว้ที่มุมหนึ่ง
gnomed

ที่จริงแล้วทำไมคุณถึงต้องการเปลี่ยนระดับน้ำไหล? คุณต้องการบูตไปที่เทอร์มินัลอินเตอร์เฟสแทนการโหลดเดสก์ท็อป ในกรณีนี้คุณควรแก้ไข systemd เป้าหมายมาตรฐานโหลดเมื่อบูตและเพิ่มตัวเลือกเคอร์เนล "text"
ผู้บัญชาการ Byte

4
อาจจะเป็นเพราะตั้งแต่ 15.10, อูบุนตูใช้systemdแทนและแฟ้มที่คุณกำลังพูดถึงคือupstart upstartหากคุณอ่านบทความที่เก่ากว่าคุณจะพบกับวิธีการแบบเก่าinitเช่นกัน แต่ด้วยsystemdคุณสามารถสลับระหว่างโหมด GUI และข้อความที่ใช้และsudo systemctl start graphical.target sudo systemctl start multi-user.target
ผู้บัญชาการ Byte

5
สำหรับผู้ตรวจสอบทั้งหมดนี่เป็นคำถามที่ถูกต้อง! มีเป็นวิธีที่จะเปลี่ยนระดับการทำงาน (หรือไม่ก็ถูกเรียกว่า "runlevels" หรือ "เป้าหมาย") โดยใช้systemctl isolate
รอน

คำตอบ:


50

อูบุนตู 16.04 ใช้ systemd แทน init และด้วยเหตุนี้แนวคิดของจะถูกแทนที่ด้วยคำว่าrunlevels targetsดังนั้นจึงมีการทำแผนที่ระหว่าง runlevels ที่อิงกับ init และเป้าหมายของ systemd:

   Mapping between runlevels and systemd targets
   ┌─────────┬───────────────────┐
   │Runlevel │ Target            │
   ├─────────┼───────────────────┤
   │0        │ poweroff.target   │
   ├─────────┼───────────────────┤
   │1        │ rescue.target     │
   ├─────────┼───────────────────┤
   │2, 3, 4  │ multi-user.target │
   ├─────────┼───────────────────┤
   │5        │ graphical.target  │
   ├─────────┼───────────────────┤
   │6        │ reboot.target     │
   └─────────┴───────────────────┘

ตอนนี้เพียงแค่เปลี่ยน "runlevels" ใน 16.04 คุณสามารถใช้สำหรับเช่น:

sudo systemctl isolate multi-user.target

ในการทำให้นี่เป็น "runlevel" เริ่มต้นคุณสามารถใช้:

sudo systemctl enable multi-user.target
sudo systemctl set-default multi-user.target

จาก man systemctl

   isolate NAME
       Start the unit specified on the command line and its dependencies and stop all others. If
       a unit name with no extension is given, an extension of ".target" will be assumed.

       This is similar to changing the runlevel in a traditional init system. The isolate command
       will immediately stop processes that are not enabled in the new unit, possibly including
       the graphical environment or terminal you are currently using

ดูที่man systemd.specialรู้เพิ่มเติมเกี่ยวกับเป้าหมายใน systemd


สวัสดี @ ตอบสนองของคุณดีมากฉันทำเพื่อติดตั้งไดรเวอร์อย่างเป็นทางการของ Nvidia แต่ตอนนี้หน้าจอของฉันไม่แสดงอะไรเลยนอกจากหน้าจอสีน้ำเงิน ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของคุณ
Raphael Teubner

เข้าสู่โหมดการกู้คืนจาก Grub จากนั้นเปลี่ยนเป็นรูทระดับก่อนหน้า
LottaLava

ใช่. ฉันแค่จะแสดงความคิดเห็นเกี่ยวกับวิธีที่พวกเขาให้คำสั่งที่ดีมาก ๆ เหล่านี้ตั้งแต่การเริ่มระบบ gui ไปยังโหมดข้อความไม่สนใจเลยเกี่ยวกับการบอกเราเกี่ยวกับวิธีการกลับจากการบูตข้อความไปยังการบูต gui
nyxee

ดังนั้นเพื่อให้ทราบว่าฉันทำงานsudo systemctl set-default multi-user.targetในโหมด GUI เมื่อรีบูตฉันมีหน้าจอว่างเปล่าซึ่งเป็นสัญญาณที่ดีที่ GUI ไม่สามารถบูตได้ดังนั้นฉันกดCtrl-Alt-F3เพื่อเข้าสู่ Runlevel 3 ทำสิ่งที่ฉันต้องการ (ติดตั้ง NVIDIA- CUDA) เรียกใช้sudo systemctl set-default graphical.targetและกลับสู่หน้าจอเข้าสู่ระบบ GUI แต่ตอนนี้ฉันล้มเหลวในการเข้าสู่ระบบนั่นเป็นวิธีที่ถูกต้องในการเปลี่ยนกลับไปเป็นระดับการทำงานก่อนหน้านี้หรือไม่?
nyxee

2
@nyxee - ใช่sudo systemctl set-default graphical.targetเป็นวิธีที่ถูกต้องในการย้อนกลับสู่สภาพแวดล้อมเดสก์ทอป GUI ความล้มเหลวในการเข้าสู่ระบบของคุณเสียงไม่เกี่ยวข้องกับการสลับระหว่าง runlevels - ฟังดูเหมือนปัญหาวนรอบการบูตของ nVidia หากต้องการตรวจสอบให้แน่ใจย้อนกลับไปที่ runlevel 3 ลบไดรเวอร์ nVidia และ Cuda ติดตั้งไดรเวอร์ nVidia จาก repo ตั้งค่าเริ่มต้นเป็น runlevel 5 (กราฟิก.target) จากนั้นรีบูตและดูว่าคุณสามารถเข้าสู่ระบบได้หรือไม่
Andy Turfer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.