runlevel可以認為是系統狀態,形象一點,您可以認為runlevel有點象微軟的windows操作系統中的Normal,safemode,和Command prompt only。
Linux系統有7個運行級別(runlevel)
運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸后進入控制台命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制台,登陸后進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動
S, s Single user mode
運行級別的原理:
1。在目錄/etc/rc.d/init.d下有許多服務器腳本程序,一般稱為服務(service)
2。在/etc/rc.d下有7個名為rcN.d的目錄,對應系統的7個運行級別
3。rcN.d目錄下都是一些符號鏈接文件,這些鏈接文件都指向init.d目錄下的service腳本文件,命名規則為K+nn+服務名或S+nn+服務名,其中nn為兩位數字。
4。系統會根據指定的運行級別進入對應的rcN.d目錄,並按照文件名順序檢索目錄下的鏈接文件
對於以K開頭的文件,系統將終止對應的服務
對於以S開頭的文件,系統將啟動對應的服務
5。查看運行級別用:runlevel
6。進入其它運行級別用:init N
7。另外init0為關機,init 6為重啟系統
在運行模式中加入啟動服務
要在某個運行模式中加入一個啟動服務,首先要新建該服務啟動腳本,然后把它放置於/etc/rc.d/init.d或者/etc/init.d/(根據你的linux版本有所不同),要將該啟動腳本與運行模式關聯起來,你需要這個運行模式的目錄下建立一個與/etc/rc.d/init.d/下啟動腳本的symbolic link,文件名的前綴通常為SXX,XX為數字,這個數字是用來控制該運行模式下服務的啟動順序。腳本的執行順序是按照數字大小升序執行,就是數字越小越先執行,下面就是一個在運行模式中加入啟動服務具體的例子:
$ cp myservice /etc/rc.d/init.d/
$ ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice
這樣,下次以runlevel 3啟動時,myservice就會自動啟動。
注意:
多數的桌面的linux系統缺省的runlevel是5,用戶登陸時是圖形界面,而多數的服務器版本的linux系統缺省的runlevel是3,用戶登陸時是字符界面,runlevel 1和2除了調試之外很少使用,runlevel s和S並不是直接給用戶使用,而是用來為Single user mode作准備。