linux的運行模式:runlevel

轉自:http://www.host01.com/article/server/00070002/20060830100951887.htm

linux操作系統自從開始啓動至啓動完畢需要經歷幾個不同的階段,這幾個階段就叫做runlevel,同樣,當linux操作系統關閉時也要經歷另外幾個不同的runlevel,下面我們就準備詳細介紹一下runlevel,並向您展示一些小技巧來讓您的linux系統避免不必要的重啓動。

runlevel可以認爲是系統狀態,形象一點,您可以認爲runlevel有點象微軟的windows操作系統中的Normal,safemode,和Command prompt only。進入每個runlevel都需要啓動或關閉相應的一系列服務(services),這些服務(services)以初始化腳本的方式放置於目錄/etc/rc.d/rc?.d/或者/etc/rc?.d下面(?代表runlevel的對應序號)。

在大多數的linux發行版本中,通常有8個runlevel

Runlevel  System State
0  Halt the system
1   Single user mode
2  Basic multi user mode
3  Multi user mode
5  Multi user mode with GUI
6  Reboot the system
S, s  Single user mode

多數的桌面的linux系統缺省的runlevel是5,用戶登陸時是圖形界面,而多數的服務器版本的linux系統缺省的runlevel是3,用戶登陸時是字符界面,runlevel 1和2除了調試之外很少使用,runlevel s和S並不是直接給用戶使用,而是用來爲Single user mode作準備。

linux的運行模式比起windows的啓動模式的優勢在於:你可以在系統空閒時使用.init工具切換你現在使用的runlevel,另外,當你關閉或者啓動linux系統時你已經不知不覺中切換你的runlevel,系統關機進程需要調用runlevel(0或6)來關閉所有正在運行中的進程。

顯示當前運行模式

剛入門時,你或許對先前和目前正在使用中的運行模式很好奇,runlevel命令可以用來顯示這些信息:
$ /sbin/runlevel
3 5
runlevel命令的輸出結果表明最初的運行模式是3,而現在的運行模式是5。

切換運行模式

切換運行模式使用telinit命令(root用戶):
$ /sbin/telinit
通常,切換運行模式的目的是重啓某些應用進程,比如XFree86,將運行模式從5切換到3將終止XFree86以及與之相關的所有進程,然後再把運行模式切換到5,XFree86就可以很乾淨的啓動。在做這些工作之前,請確保所有在XFree86下的工作都已經保存,用root用戶:
$ /sbin/telinit 3
$ /sbin/telinit 5
在鍵入命令之後,你的屏幕可能會顯示一些服務啓動或者停止的信息。

在運行模式中加入啓動服務

要在某個運行模式中加入一個啓動服務,首先要新建該服務啓動腳本,然後把它放置於/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就會自動啓動。

以某個runlevel啓動

你可以自己制定啓動時所進入的runlevel,如果你的系統使用的是lilo,在啓動命令中將相應的部分爲:
LILO: linux 5
如果你使用的是GRUB,在啓動時你可以按住e鍵進入設置模式,相應的位置顯示爲:
kernel /vmlinuz ro root=/dev/hda1 5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章