linux操作系統(tǒng)自從開始啟動(dòng)至啟動(dòng)完畢需要經(jīng)歷幾個(gè)不同的階段,這幾個(gè)階段就叫做runlevel,同樣,當(dāng)linux操作系統(tǒng)關(guān)閉時(shí)也要經(jīng)歷另外幾個(gè)不同的runlevel,下面我們就準(zhǔn)備詳細(xì)介紹一下runlevel,并向您展示一些小技巧來讓您的linux系統(tǒng)避免不必要的重啟動(dòng)。
runlevel可以認(rèn)為是系統(tǒng)狀態(tài),形象一點(diǎn),您可以認(rèn)為runlevel有點(diǎn)象微軟的windows操作系統(tǒng)中的Normal,safemode,和Command prompt only。進(jìn)入每個(gè)runlevel都需要啟動(dòng)或關(guān)閉相應(yīng)的一系列服務(wù)(services),這些服務(wù)(services)以初始化腳本的方式放置于目錄/etc/rc.d/rc?.d/或者/etc/rc?.d下面(?代表runlevel的對(duì)應(yīng)序號(hào))。
在大多數(shù)的linux發(fā)行版本中,通常有8個(gè)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
多數(shù)的桌面的linux系統(tǒng)缺省的runlevel是5,用戶登陸時(shí)是圖形界面,而多數(shù)的服務(wù)器版本的linux系統(tǒng)缺省的runlevel是3,用戶登陸時(shí)是字符界面,runlevel 1和2除了調(diào)試之外很少使用,runlevel s和S并不是直接給用戶使用,而是用來為Single user mode作準(zhǔn)備。
linux的運(yùn)行模式比起windows的啟動(dòng)模式的優(yōu)勢(shì)在于:你可以在系統(tǒng)空閑時(shí)使用.init工具切換你現(xiàn)在使用的runlevel,另外,當(dāng)你關(guān)閉或者啟動(dòng)linux系統(tǒng)時(shí)你已經(jīng)不知不覺中切換你的runlevel,系統(tǒng)關(guān)機(jī)進(jìn)程需要調(diào)用runlevel(0或6)來關(guān)閉所有正在運(yùn)行中的進(jìn)程。
顯示當(dāng)前運(yùn)行模式
剛?cè)腴T時(shí),你或許對(duì)先前和目前正在使用中的運(yùn)行模式很好奇,runlevel命令可以用來顯示這些信息:
$ /sbin/runlevel
3 5
runlevel命令的輸出結(jié)果表明最初的運(yùn)行模式是3,而現(xiàn)在的運(yùn)行模式是5。
切換運(yùn)行模式
切換運(yùn)行模式使用telinit命令(root用戶):
$ /sbin/telinit
通常,切換運(yùn)行模式的目的是重啟某些應(yīng)用進(jìn)程,比如XFree86,將運(yùn)行模式從5切換到3將終止XFree86以及與之相關(guān)的所有進(jìn)程,然后再把運(yùn)行模式切換到5,XFree86就可以很干凈的啟動(dòng)。在做這些工作之前,請(qǐng)確保所有在XFree86下的工作都已經(jīng)保存,用root用戶:
$ /sbin/telinit 3
$ /sbin/telinit 5
在鍵入命令之后,你的屏幕可能會(huì)顯示一些服務(wù)啟動(dòng)或者停止的信息。
在運(yùn)行模式中加入啟動(dòng)服務(wù)
要在某個(gè)運(yùn)行模式中加入一個(gè)啟動(dòng)服務(wù),首先要新建該服務(wù)啟動(dòng)腳本,然后把它放置于/etc/rc.d/init.d或者/etc/init.d/(根據(jù)你的linux版本有所不同),要將該啟動(dòng)腳本與運(yùn)行模式關(guān)聯(lián)起來,你需要這個(gè)運(yùn)行模式的目錄下建立一個(gè)與/etc/rc.d/init.d/下啟動(dòng)腳本的symbolic link,文件名的前綴通常為SXX,XX為數(shù)字,這個(gè)數(shù)字是用來控制該運(yùn)行模式下服務(wù)的啟動(dòng)順序。腳本的執(zhí)行順序是按照數(shù)字大小升序執(zhí)行,就是數(shù)字越小越先執(zhí)行,下面就是一個(gè)在運(yùn)行模式中加入啟動(dòng)服務(wù)具體的例子:
$ cp myservice /etc/rc.d/init.d/
$ ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice
這樣,下次以runlevel 3啟動(dòng)時(shí),myservice就會(huì)自動(dòng)啟動(dòng)。
以某個(gè)runlevel啟動(dòng)
你可以自己制定啟動(dòng)時(shí)所進(jìn)入的runlevel,如果你的系統(tǒng)使用的是lilo,在啟動(dòng)命令中將相應(yīng)的部分為:
LILO: linux 5
如果你使用的是GRUB,在啟動(dòng)時(shí)你可以按住e鍵進(jìn)入設(shè)置模式,相應(yīng)的位置顯示為:
kernel /vmlinuz ro root=/dev/hda1 5
聯(lián)系客服