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