美國(guó)服務(wù)器Linux系統(tǒng)啟動(dòng)腳本執(zhí)行的順序是有特定的規(guī)則的,今天美聯(lián)科技小編就來(lái)跟大家介紹下美國(guó)服務(wù)器Linux系統(tǒng)啟動(dòng)腳本執(zhí)行的順序。
1、美國(guó)服務(wù)器一般內(nèi)核啟動(dòng)后
1)先識(shí)別存儲(chǔ)器分區(qū),根據(jù)root=/dev/block/mtd/mmcblk0p6這樣的的參數(shù)掛載文件系統(tǒng)。
2)運(yùn)行文件系統(tǒng)中的init=/sbin/init執(zhí)行啟動(dòng)腳本。
3)一般這個(gè)時(shí)候腳本中可能會(huì)有分區(qū)識(shí)別腳本,將分區(qū)再識(shí)別一次,或者重新掛載nfs,或者直接在root=nfs,讓內(nèi)核去掛載網(wǎng)絡(luò)文件系統(tǒng)也是可以的。
2、一般美國(guó)服務(wù)器Linux系統(tǒng)的RunLevel
運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)。
運(yùn)行級(jí)別1:?jiǎn)斡脩?hù)工作狀態(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸。
運(yùn)行級(jí)別2:多用戶(hù)狀態(tài),沒(méi)有NFS。
運(yùn)行級(jí)別3:完全的多用戶(hù)狀態(tài),有NFS,登陸后進(jìn)入控制臺(tái)命令行模式。
運(yùn)行級(jí)別4:系統(tǒng)未使用,保留。
運(yùn)行級(jí)別5:X11控制臺(tái),登陸后進(jìn)入圖形GUI模式。
運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)。
3、美國(guó)服務(wù)器Ubuntu的RunLevel
運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)
運(yùn)行級(jí)別1:?jiǎn)斡脩?hù)工作狀態(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸
運(yùn)行級(jí)別2:多用戶(hù)GUI
運(yùn)行級(jí)別3:多用戶(hù)GUI
運(yùn)行級(jí)別4:多用戶(hù)GUI
運(yùn)行級(jí)別5:多用戶(hù)GUI
運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)
4、美國(guó)服務(wù)器舊式System V initialization啟動(dòng)流程:
1)運(yùn)行第一個(gè)進(jìn)程/sbin/init,找到/etc/inittab;
2)根據(jù)inittab首先執(zhí)行/etc/rcS.d/;
3)隨后根據(jù)“id:5:initdefault”,設(shè)置runlevel(這里為5),并根據(jù)runlevel執(zhí)行/etc/init.d/rc 5,這個(gè)命令會(huì)找到/etc/rc5.d/,運(yùn)行其中的腳本,這些腳本實(shí)際是/etc/init.d/目錄下腳本的軟連接,可能根據(jù)傳入的文件名作為參數(shù)執(zhí)行相應(yīng)動(dòng)作,類(lèi)似busybox,這些腳本以S開(kāi)頭的為啟動(dòng)的意思,以K開(kāi)頭的為停止。并且S/K后面的兩位數(shù)數(shù)字代表了服務(wù)的啟動(dòng)順序。
5、美國(guó)服務(wù)器Ubuntu啟動(dòng)腳本執(zhí)行流程:
使用upstart啟動(dòng)流程,并且兼容System V初始化。
1)其中/sbin/init 進(jìn)程首先找到/etc/init/目錄下的rc-sysinit.conf、rc.conf、rcS.conf,rc-sysinit在startup事件發(fā)生時(shí)被啟動(dòng),rc在系統(tǒng)runlevel變化時(shí)被啟動(dòng),rcS在系統(tǒng)runlevel為S時(shí)啟動(dòng)。
2)其中rc-sysinit.conf的主要工作是檢測(cè)是否存在/etc/inittab或內(nèi)核命令行,若存在,則按內(nèi)核命令行>/etc/inittab>默認(rèn)runlevel的順序設(shè)置系統(tǒng) runlevel,不存在則忽略。
3)隨后rc-sysinit.conf主動(dòng)調(diào)用/etc/init.d/rcS,其作用就是調(diào)用/etc/rcS.d目錄下的腳本。
4)之后rc-sysinit.conf設(shè)置系統(tǒng)默認(rèn)runlevel(2),由于runlevel變化,rc.conf和rcS.conf服務(wù)啟動(dòng),其中rc.conf最后會(huì)執(zhí)行“exec /etc/init.d/rc RUNLEVEL”,從而SystemVinitialization的流程被啟動(dòng),進(jìn)入/etc/rc(RUNLEVEL).d/執(zhí)行相應(yīng)腳本,其中rc($RUNLEVEL).d文件夾中一般會(huì)有一個(gè)執(zhí)行優(yōu)先級(jí)最低的/etc/init.d/rc.local,里面的內(nèi)容其實(shí)就是調(diào)用/etc/rc.local。
綜合上述描述,系統(tǒng)登錄之前的腳本主要有:/etc/rcS.d -> /etc/rc2.d/ -> /etc/rc.local,這些目錄下的腳本一般以數(shù)字開(kāi)頭,數(shù)字越小越先被執(zhí)行。
6、美國(guó)服務(wù)器Ubuntu各個(gè)時(shí)間段執(zhí)行的腳本:
1)啟動(dòng)過(guò)程最后會(huì)調(diào)用/etc/rc.local;
2)用戶(hù)登錄先執(zhí)行全局登錄腳本/etc/enviroment->/etc/profile,然后在用戶(hù)目錄按順序查找三個(gè)特殊文件中的一個(gè):.bash_profile、.bash_login、.profile;但只執(zhí)行先找到的一個(gè);
3)退出登錄時(shí)執(zhí)行用戶(hù)目錄的.bash_logout。
關(guān)注美聯(lián)科技,了解更多IDC資訊!