不同 Linux 發行版啟動流程涉及的設定檔路徑與機制各異,易造成混淆。本文系統整理 Red Hat 與 Ubuntu 兩大主流發行版的啟動關鍵設定檔對照,並深入解析 Ubuntu 下 init 進程與 rc*.d 目錄運作機制。
/etc/inittab:init 進程核心設定/etc/rc.d/rc.sysinit:系統初始化腳本/etc/rc.d/rcX.d/:各執行等級 (runlevel) 服務啟動/停止符號連結目錄 (X=0-6)/etc/rc.d/init.d/:實際守護進程腳本存放處/etc/rc.d/rc.local:用戶自訂啟動腳本/etc/inittab:部分版本可能無此檔 (Upstart/Systemd 取代)/etc/rcS.d/:系統啟動階段服務符號連結 (S 開頭啟動、K 開頭停止)/etc/rcX.d/:各執行等級服務目錄 (X=0-6)/etc/init.d/:實際服務啟動腳本/etc/rc.local:用戶自訂啟動腳本init 讀取 inittab (若存在)rcS.d/ 所有服務 (S* 啟動、K* 停止,依序號排序)initdefault)rcX.d/ 目錄下服務 (先停止 K*,再啟動 S*)rcS.d/、rcX.d/ 下檔案皆為 init.d/ 實際腳本的符號連結:
/etc/init.d/rc:主控腳本,接收參數決定執行哪個 rc*.d 目錄 (如 rc S 執行 rcS.d/,rc 5 執行 rc5.d/)/etc/init.d/rc.local:根據標誌執行/停止 /etc/rc.local (預設僅含 exit 0,可加入自訂啟動程式)/etc/init.d/rcS:啟動 rcS.d/ 所有服務,實際執行 exec /etc/init.d/rc SUbuntu 15.04+、RHEL 7+、CentOS 7+、Debian 8+ 已全面遷移至 Systemd,舊式 SysV init 流程逐漸淡出,但理解傳統機制仍有助於維護舊系統與理解服務管理本質。