Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 伺服器綜合

CentOS 7 運行級別切換與 systemd Target 管理完全指南

編輯:伺服器綜合

背景:Runlevel vs Target

CentOS 7 採用 systemd,廢除傳統 SysVinit runlevel,改用 Target 代表系統狀態。對應關係如下:

傳統 RunlevelSystemd Target說明
0poweroff.target關機
1rescue.target單用戶/救援模式
2,3,4multi-user.target文字模式(無圖形介面)
5graphical.target圖形模式
6reboot.target重啟

/lib/systemd/system/runlevel*.target 僅為符號連結指向對應 target。

一、暫時切換(重啟失效)

# 切換至文字模式(原 runlevel 3)
systemctl isolate multi-user.target
# 或
systemctl isolate runlevel3.target

# 切換至圖形模式(原 runlevel 5)
systemctl isolate graphical.target
# 或
systemctl isolate runlevel5.target
isolate 會啟動目標 target 並停止不相容的單元,類似舊 init 3/5。

二、永久修改預設啟動目標

方法 1:符號連結(傳統相容)

# 文字模式預設
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
# 或
ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

# 圖形模式預設
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
# 或
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

方法 2:systemctl 指令(推薦)

# 文字模式
systemctl set-default multi-user.target
# 圖形模式
systemctl set-default graphical.target
執行後可用 systemctl get-default 驗證。

三、查看當前運行狀態

# 傳統指令仍可用
runlevel
# 輸出範例:N 3  表示從無前一級別進入 3

# systemd 原生查法
systemctl list-units --type=target --state=active
# 顯示所有啟動中的 target

四、緊急情況:GRUB 進入救援/單用戶模式

  1. 開機 GRUB 選單按 e 編輯啟動參數。
  2. 在 linux16 / linuxefi 行尾加入:systemd.unit=rescue.target 或 systemd.unit=emergency.target。
  3. 按 Ctrl+x 啟動。
rescue.target 掛載根檔案系統(唯讀),啟動基本服務;emergency.target 更精簡,僅掛載根目錄,適合修復嚴重損壞。

五、常見疑問

Q: /etc/inittab 還能用嗎?
A: systemd 不讀取 inittab,僅保留相容符號連結。請改用 target 管理。
Q: 如何自訂 target?
A: 複製既有 target 至 /etc/systemd/system/,修改 Wants=/Requires= 依賴關係,再 systemctl daemon-reload。

掌握 systemd target 機制,即可彈性控制 CentOS 7 的啟動模式與服務依賴,取代舊有 runlevel 概念,更符合現代服務管理需求。

Copyright © Windows教程網 All Rights Reserved