1)redhat的啟動(dòng)方式和執(zhí)行次序是:
加載內(nèi)核 執(zhí)行init程序
/etc/rc.d/rc.sysinit # 由init執(zhí)行的第一個(gè)腳本
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL為缺省的運(yùn)行模式
/etc/rc.d/rc.local #相應(yīng)級(jí)別服務(wù)啟動(dòng)之后、在執(zhí)行該文件(其實(shí)也可以把需要執(zhí)行的命令寫到該文件中) /sbin/mingetty # 等待用戶登錄
在Redhat中,/etc/rc.d/rc.sysinit主要做在各個(gè)運(yùn)行模式中相同的初始化工作,包括: 調(diào)入keymap以及系統(tǒng)字體 啟動(dòng)swapping 設(shè)置主機(jī)名 設(shè)置NIS域名
檢查(fsck)并mount文件系統(tǒng)打開quota 裝載聲卡模塊設(shè)置系統(tǒng)時(shí)鐘等等。
/etc/rc.d/rc則根據(jù)其參數(shù)指定的運(yùn)行模式(運(yùn)行級(jí)別,你在inittab文件中可以設(shè)置)來執(zhí)行相應(yīng)目錄下的腳本。
凡是以Kxx開頭的 ,都以stop為參數(shù)來調(diào)用;凡是以Sxx開頭的,都以start為參數(shù)來調(diào)用。
調(diào)用的順序按xx 從小到大來執(zhí)行。
(其中xx是數(shù)字、表示的是啟動(dòng)順序)例如,假設(shè)缺省的運(yùn)行模式是3,/etc/rc.d/rc就會(huì)按上述方式調(diào)用
/etc/rc.d/rc3.d/下的腳本。
值得一提的是,Redhat中的運(yùn)行模式2、3、5都把/etc/rc.d/rc.local做為初始化腳本中
的最后一個(gè),所以用戶可以自己在這個(gè)文件中添加一些需要在其他初始化工作之后,登錄之前執(zhí)行的命令。 init在等待/etc/rc.d/rc執(zhí)行完畢之后(因?yàn)樵?etc/inittab中/etc/rc.d/rc的
action是wait),將在指定的各個(gè)虛擬終端上運(yùn)行/sbin/mingetty,等待用戶的登錄。 至此,LINUX的啟動(dòng)結(jié)束。
2)init運(yùn)行級(jí)別及指令 一、什么是INIT:
init是Linux系統(tǒng)操作中不可缺少的程序之一。
所謂的init進(jìn)程,它是一個(gè)由內(nèi)核啟動(dòng)的用戶級(jí)進(jìn)程。
內(nèi)核自行啟動(dòng)(已經(jīng)被載入內(nèi)存,開始運(yùn)行,并已初始化所有的設(shè)備驅(qū)動(dòng)程序和數(shù)據(jù)結(jié)構(gòu)等)之后,就通過啟動(dòng)一個(gè)用戶級(jí)程序init的方式,完成引導(dǎo)進(jìn)程。所以,init始終是第一個(gè)進(jìn)程(其進(jìn)程編號(hào)始終為1)。
內(nèi)核會(huì)在過去曾使用過init的幾個(gè)地方查找它,它的正確位置(對(duì)Linux系統(tǒng)來說)是/sbin/init。如果內(nèi)核找不到init,它就會(huì)試著運(yùn)行/bin/sh,如果運(yùn)行失敗,系統(tǒng)的啟動(dòng)也會(huì)失敗。
二、運(yùn)行級(jí)別
那么,到底什么是運(yùn)行級(jí)呢?
簡(jiǎn)單的說,運(yùn)行級(jí)就是操作系統(tǒng)當(dāng)前正在運(yùn)行的功能級(jí)別。
這個(gè)級(jí)別從1到6 ,具有不同的功能。 不同的運(yùn)行級(jí)定義如下
# 0 -停機(jī)(千萬(wàn)不能把initdefault 設(shè)置為0 )
# 1 -單用戶模式 # s init s = init 1
# 2 -多用戶,沒有 NFS
# 3 -完全多用戶模式(標(biāo)準(zhǔn)的運(yùn)行級(jí))
# 4 -沒有用到
# 5 -X11 多用戶圖形模式(xwindow)
# 6 -重新啟動(dòng) (千萬(wàn)不要把initdefault 設(shè)置為6 )
這些級(jí)別在/etc/inittab 文件里指定。
這個(gè)文件是init 程序?qū)ふ业闹饕募钕冗\(yùn)行的服務(wù)是放
在/etc/rc.d 目錄下的文件。
在大多數(shù)的Linux 發(fā)行版本中,啟動(dòng)腳本都是位于 /etc/rc.d/init.d中的。
這些腳本被用ln 命令連接到 /etc/rc.d/rcn.d 目錄。(這里的n 就是運(yùn)行級(jí)0-6) 3):
---------------------------
chkconfig命令主要用來更新(啟動(dòng)或停止)和查詢系統(tǒng)服務(wù)的運(yùn)行級(jí)信息。謹(jǐn)記chkconfig不是立即自動(dòng)禁止或激活一個(gè)服務(wù),它只是簡(jiǎn)單的改變了符號(hào)連接。
使用語(yǔ)法:
chkconfig [--add][--del][--list][系統(tǒng)服務(wù)] 或 chkconfig [--level <等級(jí)代號(hào)>][系統(tǒng)服務(wù)][on/off/reset]
chkconfig在沒有參數(shù)運(yùn)行時(shí),顯示用法。如果加上服務(wù)名,那么就檢查這個(gè)服務(wù)是否在當(dāng)前運(yùn)行級(jí)啟動(dòng)。如果是,返回true,否則返回false。如果在服務(wù)名后面指定了on,off或者reset,那么chkconfi 會(huì)改變指定服務(wù)的啟動(dòng)信息。on和off分別指服務(wù)被啟動(dòng)和停止,reset指重置服務(wù)的啟動(dòng)信息,無論有問題的初始化腳本指定了什么。on和off開關(guān),系統(tǒng)默認(rèn)只對(duì)運(yùn)行級(jí)3,4,5有效,但是reset可以對(duì)所有運(yùn)行級(jí)有效。
參數(shù)用法:
--add 增加所指定的系統(tǒng)服務(wù),讓chkconfig指令得以管理它,并同時(shí)在系統(tǒng)啟動(dòng)的敘述文件內(nèi)增加相關(guān)數(shù)據(jù)。
--del 刪除所指定的系統(tǒng)服務(wù),不再由chkconfig指令管理,并同時(shí)在系統(tǒng)啟動(dòng)的敘述文件內(nèi)刪除相關(guān)數(shù)據(jù)。
--level<等級(jí)代號(hào)> 指定讀系統(tǒng)服務(wù)要在哪一個(gè)執(zhí)行等級(jí)中開啟或關(guān)畢。
等級(jí)0表示:表示關(guān)機(jī)
等級(jí)1表示:?jiǎn)斡脩裟J?/p>
等級(jí)2表示:無網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)4表示:不可用
等級(jí)5表示:帶圖形界面的多用戶模式
等級(jí)6表示:重新啟動(dòng)