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
配置檔案的關係如下圖: