linux的不行發行版之間使用的文件系統不一致,因此導致了linux啟動過程所涉及的一些相關配置文件也各不相同,容易導致混亂。主要是體現在linux的init進程啟動的過程:
Red Hat下相關的配置文件為:
/etc/inittab
/etc/rc.d/rc.sysinit
/etc/rc.d/rcX.d/ 目錄下的各符號鏈接
/etc/rc.d/init.d/ 目錄下的實際守護進程腳本
/etc/rc.d/rc.local 用戶自定義啟動腳本
Ubuntu下相關的配置文件對應為:
/etc/inittab (有的好像沒有這個文件)
/etc/rcS.d/ 目錄下的啟動服務符號鏈接
/etc/rcX.d/ 各運行等級對應的啟動目錄,X:0-6
/etc/init.d/ 實際的服務啟動腳本
/etc/rc.local 用戶自定義啟動腳本
下面主要就Ubuntu系統下的配置文件之間的關聯進行一個整理:
init進程讀取inittab文件,啟動rcS.d目錄下的所有服務,確定啟動運行級別(initdefault),依據順序停止[K]或啟動[S]對應運行級別rcX.d/目錄下的服務
rcS.d/rcX.d目錄下的文件均為init.d目錄下的服務腳本的符號鏈接,通過標識[K]標明停止,標識[S]標明啟動。
三個文件:/etc/init.d/rc /etc/init.d/rc.local /etc/init.d/rcS
rc腳本通過第一個參數確定具體的服務運行目錄/級別,如rc S 執行rcS.d/下的服務,rc 5 執行rc5.d/下的服務等。
rc.local腳本根據標識執行或停止/etc/rc.local腳本(如果存在),默認/etc/rc.local文件中沒有任何內容,或者有一句 exit 0;可以在其中添加自定義的啟動程序。
rcS腳本執行rcS.d/下的所有服務:exec /etc/init.d/rc S