run levels
昨天介紹 init初始化工作流程時,提到了載入系統預設的 run level.下表列出了Linux系統中所有的運行級別以及每個運行級別的功能:
run level | 功能 |
0 | 關機,不能設置為 initdefault(不能設置為默認的運行級別) |
1、S、emergency | 單用戶模式,只有root用戶可以登錄,用於系統維護 |
2 | 多用戶模式,沒有啟動網絡功能 |
3 | 多用戶模式,啟動了網絡功能,但是為文字界面 |
4 | 用戶自定義模式,默認與 run level3 相同 |
5 | 與 run level3 相同,並且啟動了X11(即圖形界面) |
6 | 重新啟動系統,不能設置為 initdefault |
由於 run level是作為關機用的,所以不能設為默認,即不能在/etc/inittab文件中做 id:0:initdefault:這樣的設置,否則,剛關機就進入 run level 0,也就是即刻關機。run level 6也是同樣的道理。
在run level 1中,init進程首先執行/etc/rc.sysinit 程序來初始化操作系統,之後再執行 /etc/rc 1.d目錄中的所有程序,可以表示為 init - > /etc/rc.sysinit -> /etc/rc 1.d/*。
在run level S中,init進程只會執行 /etc/rc.sysinit 程序來初始化操作系統,可以表示為 init - > /etc/rc.sysinit。
在run level emergency中,init進程只會執行 /etc/rc.sysinit腳本中某些必要的程序來初始化操作系統。
run level 的選擇
Linux系統使用哪個run level是由init程序來定義的,可使用如下3種方式來選擇使用哪一種 run level:
在開機時使用的run level會預設在/etc/inittab文件中。如在Linux系統上 /etc/inittab 文件中的相關設置為id:5:initdefault:,即這個Linux系統將使用 run level 5來開機。
從 boot loader傳一個參數給 Linux系統的內核,如在開機之前,在grub的開機程序中修改內核參數以單用戶模式登錄之後修改root密碼的方法。run level ,其中 c是run level 0~6、S及emergency.
run level 的查看
要查看Linux系統目前以及之前的run level,可以使用 /sbin 目錄中的runlevel 命令,即運行 /sbin/runlevel命令:
root@promote:~# runlevel
N 5
結果表明目前系統的run level是5,即運行在圖形界面模式,最前面的N是之前的 run level,因為這個系統一直都是使用run level 5,所以沒有之前的run level 。
使用下列命令使系統的 run level 變為3,即多用戶文字模式運行:
root@promote:~# init 3
root@promote:~# runlevel
5 3
現在可以使用init 5命令讓系統重新回到run level 5 ,也可以使用 startx 命令進入圖形界面。
今天就分享這麼多了,謝謝欣賞!^_~