萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 運行級別與 systemd 目標完整對照表

SysVinit 運行級別 (傳統)

級別名稱描述典型用途
0halt關機系統關閉,切斷電源
1 / s / Ssingle-user單用戶模式維護、修復、重置密碼
2multi-user (no net)多用戶無網絡極少用,特定嵌入式場景
3multi-user多用戶命令行**服務器標準運行級別**
4unused保留/自定義用戶自定義
5graphical圖形界面**桌面標準運行級別**
6reboot重啟系統重啟

systemd 目標單元對照

運行級別systemd 目標說明
0poweroff.target關機
1rescue.target救援模式
2multi-user.target兼容級別 2
3multi-user.target命令行多用戶
4multi-user.target兼容級別 4
5graphical.target圖形界面
6reboot.target重啟
-emergency.target緊急模式(比 rescue 更極少)

查看與切換

SysVinit 命令

# 查看當前運行級
runlevel
who -r

# 切換
init 3
init 5
telinit 0

systemd 命令 (現代標準)

# 查看當前目標
systemctl get-default
systemctl list-units --type=target --state=active

# 切換 (臨時)
systemctl isolate multi-user.target
systemctl isolate graphical.target
systemctl isolate rescue.target

# 設定預設 (永久)
systemctl set-default multi-user.target
systemctl set-default graphical.target

# 緊急/救援模式 (啟動時)
# GRUB 編輯內核行加:
systemd.unit=rescue.target
systemd.unit=emergency.target

關鍵區別

  • 運行級別是互斥的:同一時刻只能處於一個級別
  • systemd 目標可並行:multi-user.target 和 graphical.target 可同時活躍
  • 依賴關系更豐富:目標間有 Wants/Requires/Conflicts,非線性
  • 向後兼容:runlevel、init 3 仍可用,實際轉發給 systemd

自定義運行級別/目標

# SysVinit: /etc/inittab
# id:3:initdefault:

# systemd: 建立自定義 target
# /etc/systemd/system/custom.target
[Unit]
Description=Custom Multi-User No Network
Requires=multi-user.target
Conflicts=network-online.target
After=multi-user.target

# 使用
systemctl isolate custom.target

實用場景

場景命令
服務器無圖形,節省資源systemctl set-default multi-user.target
桌面暫時切命令行排查systemctl isolate multi-user.target
忘記 root 密碼進單用戶GRUB 加 systemd.unit=rescue.target
文件系統損壞進緊急模式GRUB 加 systemd.unit=emergency.target
關機systemctl poweroff / shutdown -h now
重啟systemctl reboot / shutdown -r now

總結

現代 Linux (systemd) 以 **Target** 替代 **Runlevel**,功能更強、依賴更清晰。運維人員需掌握:

  1. systemctl get-default / set-default 管理預設啟動模式
  2. systemctl isolate 臨時切換
  3. GRUB 參數 systemd.unit=rescue/emergency.target 進入維護模式
  4. 傳統 runlevel、init N 仍兼容但屬legacy
copyright © 萬盛學電腦網 all rights reserved