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