inittab 檔案剖析 #1 grep -v "^#" /etc/inittab | more #2 man inittab id #3 在inittab中,所有條目採取以下格式: id:run-levels:action:process id:標識符,一般為兩位字母或數字 run-levels:指定運行層級,可以指定多個 [左手拿板磚,腳踢] action:指定運行狀態 [在什麼地方揍他] process:指定要啟動並執行指令碼/命令 【李明把高老師給揍了,其他人首先關心這個事process。在哪裡揍的action,然後用什麼揍的run-levels】 【高老師警示,我被抓,每個刑事檔案都會有一個編號-往往是時間和檔案id,這個沒有人關心】 [學習的時候要抓住重點] ----- 大致流程 ---- firmware initdefault | | BootLoader /etc/rc.d/rc.sysinit | | Kernel /etc/rc.d/rc | | /etc/inittab /etc/rc.d/rcN.d N 0~ 6 | username password----------------------------------------------------------- #4 id:5:initdefault: id:run-levels:action:process #5 如何引導的 /etc/rc.d/rc.sysinit 這個指令碼每次系統啟動它都運行!啟動系統服務的指令碼 -> 服務啟動目錄中的服務啟動程式 0 1 2 3 4 5 6 /etc/rc.d/rc0.d rc1.d rc2.d ...... S-start K-kill K85mdmpd 理論上越小的越先啟動。。或者殺死 數字 指令碼名稱 hp@ubuntu:/etc/rc3.d$ ls README S50pulseaudio S70dns-clean S99acpi-support S99rc.local S20kerneloops S50rsync S70pppd-dns S99grub-common S20speech-dispatcher S50saned S75sudo S99laptop-modeaction常用取值: initdefault: 指定系統預設啟動的運行層級 sysinit: 系統啟動執行process中指定的命令 wait: 執行process中指定的命令,並等其結束再運行其他命令 once: 執行process中指定的命令,不等待其結束 ctrlaltdel: 按下Ctrl+Alt+Del時執行process指定的命令終端有6個,你也可以自己增加終端,ctrl+alt+f7 恢複終端退出,不代表終止!啟動指令碼/etc/rc.d/rc.sysinit,完成系統服務程式啟動,如系統內容變數設定、設定系統時鐘、載入字型、檢查負載檔案系統、產生系統啟動資訊記錄檔等。判斷預設運行層級,調用/etc/rc.d/rc指令碼,執行相應運行層級目錄中的服務程式,完成相應運行層級的初始化設定/etc/rc.d/init.d該目錄下包含各個運行層級的服務程式指令碼/etc/rc.d/rc[0123456].d分別存放對應於運行層級的服務程式指令碼的符號連結,連結到init.d目錄中的相應指令碼設定自啟動程式 ln -s chkconfig ntsysv相關命令及日誌 運行dmesg檢查引導期間的錯誤 dmesg | grep eth0 判斷這個硬體是否被核心所識別 檢查系統日誌/var/log/messages,尋找可能被dmesg忽略的應用程式錯誤