操作系統(tǒng)內(nèi)核kernel啟動(dòng)后,操作系統(tǒng)開(kāi)始初始化系統(tǒng)配置,第一個(gè)運(yùn)行的程序便是/sbin/init。該程序會(huì)讀取/etc/inittab文件,并依據(jù)此文件來(lái)進(jìn)行初始化工作。
/etc/inittab
其實(shí)/etc/inittab文件最主要的作用就是設(shè)定Linux的運(yùn)行等級(jí),其設(shè)定形式是“:id:5:initdefault:”,這就表明Linux需要運(yùn)行在等級(jí)5上。不建議將一些用戶(hù)級(jí)的初始化放置在該文件中。
在設(shè)定了運(yùn)行等級(jí)后,Linux系統(tǒng)執(zhí)行的第一個(gè)用戶(hù)層文件就是/etc/rc.d/rc.sysinit腳本程序
?/etc/rc.d/rc.sysinit??
在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),打開(kāi)quota,裝載聲卡模塊,設(shè)置系統(tǒng)時(shí)鐘,等等。
/etc/rc.d/rc? $RUNLEVEL
/etc/rc.d/rc則根據(jù)其參數(shù)指定的運(yùn)行模式($RUNLEVEL運(yùn)行級(jí)別,在inittab文件中可以設(shè)置)來(lái)執(zhí)行相應(yīng)目錄下的腳本,凡是以Kxx開(kāi)頭的,都以stop為參數(shù)來(lái)調(diào)用;凡是以Sxx開(kāi)頭的,都以start為參數(shù)來(lái)調(diào)用。調(diào)用的順序按xx 從小到大來(lái)執(zhí)行,文件名中的數(shù)字用于區(qū)分執(zhí)行順序,數(shù)值小的先執(zhí)行,數(shù)值大的后執(zhí)行。例如,假設(shè)缺省的運(yùn)行模式是3,/etc/rc.d/rc就會(huì)按上述方式調(diào)用/etc/rc.d/rc3.d/下的腳本。每個(gè)級(jí)別要執(zhí)行哪些服務(wù)就在相對(duì)應(yīng)的目錄下,比如級(jí)別5要啟動(dòng)的服務(wù)就都放在 rc5.d下,但是放在這個(gè)rc5.d下的都是一些鏈接文件,鏈接到init.d中相對(duì)應(yīng)的文件,真正執(zhí)行命令的為init.d里的腳本。
/etc/rc.d/rc.local
用戶(hù)自定義的開(kāi)機(jī)啟動(dòng)項(xiàng)可以放置在該文件中
/sbin/mingetty
等待用戶(hù)登錄