『學了就忘』Linux啟動引導與修復 — 68、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命令,在遠程終端上是沒有任何反應的,而在虛擬機中,會提示如下:嘗試啟動圖形介面運行級別失敗。

image

但是我們在查詢當前Linux系統的運行級別,執行runlevel命令時,結果顯示的是3 5,記住這是一個假象,我們並沒有進入到圖形介面級別。

不過要注意,使用init命令執行關機和重啟,這並不是太安全,容易造成數據丟失。所以推薦大家還是使用shutdown命令進行關機和重啟。
關於Linux系統的關機和重啟的詳細說明可以查看前面文章:Linux系統的關機和重啟

4、系統默認運行級別

上邊了解了什麼是Linux系統的運行級別,我們把注意力拉回到系統啟動的過程中。

系統默認的運行級別,就是系統啟動後直接進入的運行級別。而上邊說的是,查看系統當前的運行的級別,而不是查看默認的系統運行級別。

Linux系統默認運行級別,在/etc/inittab配置文件中進行配置的,文件的內容如下:

image

從上圖中可以看到,裡邊的很多資訊都放入到其他不同的文件中了。

說明:

  • /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,其他的級別要不就是關機重啟,要不就是保留或單用戶,都不能作為系統默認運行級別的。

image

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配置文件內容如下:

image

可以看到/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配置文件的關係如下圖:

image