『學了就忘』Linux啟動引導與修復 — 68、Linux系統運行級別
- 2021 年 12 月 8 日
- 筆記
- 測試基礎必會技能 - Linux系統
1、Linux系統運行級別介紹
Linux默認有7個運行級別,Linux 系統任何時候都運行在一個指定的運行級別上。不同的運行級別所運行的程式和服務不盡相同,所要完成的工作和要達到的目的也不相同。
- 0:關機。
- 1:單用戶模式,可以想像為Windows系統的安全模式,主要用於系統修復。
- 2:不完全的命令行模式(命令行模式就是命令介面),不含NFS服務(Linux系統和Linux系統之間文件共享的一種服務)。
- 3:完全的命令行模式,就是標準字元介面(我們之前一直使用的命令行模式,就是這種模式)。
- 4:系統保留。
- 5:圖形模式。
- 6:重啟動。
2、查看運行級別
在Linux系統中可以使用runlevel
命令來查看系統的運行級別。
命令如下:
# N代表進入這個級別前,上一個是哪個級別。3代表當前級別
[root@localhost ~]# runlevel
N 3
說明:
N
就是None
的意思,也就是說系統是開機直接進入的3運行級別,沒有上一個運行級別。那如果是從圖形介面切換到字元介面的話,再查看運行級別,就應該是5 3
。
3、修改當前系統的運行級別
使用init
命令即可,注意:這不是init
進程。
命令如下:
- 進入圖形介面,當然Linux系統已經安裝了圖形介面才可以進入。
[root@localhost ~]# init 5
- 關機
[root@localhost ~]# init 0
- 重啟動
[root@localhost ~]# init 6
說明:
如果我們沒有安裝圖形介面,執行了init 5
命令,在遠程終端上是沒有任何反應的,而在虛擬機中,會提示如下:嘗試啟動圖形介面運行級別失敗。
但是我們在查詢當前Linux系統的運行級別,執行runlevel
命令時,結果顯示的是3 5
,記住這是一個假象,我們並沒有進入到圖形介面級別。
不過要注意,使用init
命令執行關機和重啟,這並不是太安全,容易造成數據丟失。所以推薦大家還是使用shutdown
命令進行關機和重啟。
關於Linux系統的關機和重啟的詳細說明可以查看前面文章:Linux系統的關機和重啟。
4、系統默認運行級別
上邊了解了什麼是Linux系統的運行級別,我們把注意力拉回到系統啟動的過程中。
系統默認的運行級別,就是系統啟動後直接進入的運行級別。而上邊說的是,查看系統當前的運行的級別,而不是查看默認的系統運行級別。
Linux系統默認運行級別,在/etc/inittab
配置文件中進行配置的,文件的內容如下:
從上圖中可以看到,裡邊的很多資訊都放入到其他不同的文件中了。
說明:
/etc/inittab
配置文件在以前的Linux發行版本中,如Red Hat 5或以前版本,/etc/inittab
配置文件在系統的啟動過程中,是非常重要的一個配置文件,需要載入裡邊的數據。但是在Red Hat 6以後,/etc/inittab
配置文件的功能弱化了。
所以Red Hat 6中,/etc/inittab
配置文件的唯一作用就是配置Linux系統默認運行級別。id:3:initdefault:
:中間的數字3的位置,就是配置Linux系統默認運行級別,寫幾就是對應的級別。
注意:
下圖的運行級別說明中注釋了,0和6級別是不能被設置成系統默認運行級別的,只能用1-5中選擇系統默認的運行級別。但是在這裡推薦系統的默認運行級別只能寫3或5,其他的級別要不就是關機重啟,要不就是保留或單用戶,都不能作為系統默認運行級別的。
5、/etc/rc.d/rc.local
文件說明
/etc/rc.d/rc.local
配置文件是一個非常重要的文件,這個配置文件會在用戶登陸之前讀取,這個文件中寫入什麼命令,在每次系統啟動時都會執行一次。也就是說,我如果有任何需要在系統啟動就運行的工作,只需要寫入/etc/rc.d/rc.local
這個配置文件即可,如一些服務開機的時候就需要啟動,可以把完整的服務啟動命令配置在這裡。(注意最好不要寫service啟動方式,寫/etc/init.d/
路徑的方式啟動)
/etc/rc.d/rc.local
配置文件內容如下:
可以看到/etc/rc.d/rc.local
文件是一個shell腳本,touch
一個非常隱蔽的文件/var/ lock/ subsys/local
文件。(touch
命令:如果文件不存在,則創建該文件,如果文件存在,則修改該文件的訪問時間。)
換句話說,系統每次開機,都來找這個非常隱蔽的文件,所以這個文件的修改時間就是系統的啟動時間了。也就是說,這條命令的作用就是獲取系統的啟動時間。
同時注意一下,/etc/rc.d/rc.local
配置文件還有一個軟鏈接文件,為/etc/rc.local
配置文件,(兩個文件就相當於一個文件,修改哪一個都可以,軟鏈接內容看Linux系統中的硬連接和軟連接)。
/etc/rc.d/rc.local
配置文件和/etc/rc.local
配置文件的關係如下圖: