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