它們為系統管理員提供了一種靈活而強大的手段,用于控制和管理系統的運行狀態
無論是希望系統以多用戶模式運行,還是將其置于單用戶維護模式,亦或是完全關閉系統,運行級別都能滿足這些需求
本文將深入探討Linux運行級別的概念、歷史、當前實現方式及其在系統管理中的重要性和應用
一、Linux運行級別的基本概念 Linux運行級別(Run Levels)是定義系統操作模式的一種機制
每個運行級別代表了一種不同的系統狀態,包括啟動過程、多用戶模式、單用戶模式、圖形用戶界面(GUI)模式、關機和重啟等
這些級別通常通過數字(0-6)或符號名稱(如multi-user.target、graphical.target等)來表示
0:關機(halt) - 1:單用戶模式(single-user mode),通常用于系統維護 - 2:多用戶模式,不帶NFS(不適用網絡文件系統) 3:完全的多用戶模式(有網絡功能) 4:未使用/用戶自定義 5:多用戶模式,帶圖形界面(通常為桌面環境) 6:重啟(reboot) 在早期的System V init系統中,這些運行級別是通過/etc/inittab文件配置的
然而,隨著systemd的引入,Linux系統初始化和管理的方式發生了重大變化,運行級別的概念雖然仍然存在,但其實現方式已經有所不同
二、歷史背景與System V init 在systemd之前,大多數Linux發行版都使用System V init系統來管理系統的啟動和運行級別
System V init是一個傳統的UNIX初始化系統,它依賴于/etc/inittab文件來定義系統的啟動行為、運行級別和相關的腳本
在System V init系統中,運行級別的更改通常通過運行`init`命令并指定一個新的運行級別數字來實現
例如,要將系統切換到多用戶模式(運行級別3),可以執行`init 3`命令
系統會根據/etc/inittab文件中定義的規則來啟動或停止相應的服務,以實現所需的運行級別
然而,System V init系統存在一些局限性
例如,它的啟動過程相對緩慢,因為它需要串行地啟動每個服務;同時,它的配置也相對復雜,不利于系統管理員進行快速和可靠的系統管理
三、systemd:新時代的系統和服務管理器 為了克服System V init系統的局限性,Linux社區開發了一種新的系統和服務管理器——systemd
systemd不僅提供了更快的啟動速度、更好的依賴管理和并行啟動服務的能力,還引入了一種新的目標(targets)機制來替代傳統的運行級別
在systemd中,目標(targets)是定義系統運行狀態的一種抽象
它們類似于運行級別,但提供了更靈活和可擴展的配置方式
每個目標都代表了一種特定的系統狀態,例如multi-user.target(相當于運行級別3)、graphical.target(相當于運行級別5)等
systemd使用/etc/systemd/system/default.target文件來定義系統的默認目標
當系統啟動時,它會讀取這個文件并嘗試達到指定的目標狀態
系統管理員可以通過使用`systemctl`命令來更改當前的目標狀態
例如,要將系統切換到多用戶模式(multi-user.target),可以執行`systemctl isolate multi-user.target`命令
除了提供目標機制外,systemd還引入了單元(units)的概念來統一表示不同類型的系統對象
單元可以是服務(services)、掛載點(mount points)、套接字(sockets)等
每個單元都有一個相應的配置文件,用于定義其行為和依賴關系
這使得系統管理員能夠更精細地控制系統的啟動和服務管理
四、Linux運行級別在系統管理中