/sbin/init 載入 /etc/inittab 執行 rc.sysinit/etc/modules.conf)/bin/login 程式識別第一顆硬碟及空間後,控制權移交給引導載入程式。
載入硬碟前 512 位元組(MBR)到記憶體,MBR 中的引導載入程式(如 GRUB)接管控制權,隨後將控制權傳遞給 Linux 核心。
提供最小 Linux 環境,在掛載真實根檔案系統前執行程式。
成功後清除 RAM 磁碟,讀取 /etc/inittab 執行真正的 init。關鍵腳本:
/etc/rc.d/rc.sysinit:系統初始化腳本(掛載 /proc、設定系統時鐘、環境變數、初始化 USB/HID、設定 PnP、載入鍵盤映射/字體/模組、初始化 RAID/LVM、檢查/掛載檔案系統、啟用 swap/磁碟配額/序列埠、產生啟動日誌等)/etc/rc.d/rcX.d/[KS]*:依執行等級(X)啟動/停止服務(K 開頭停止、S 開頭啟動)/etc/rc.d/rc.local:本地特殊配置init 是核心啟動的第一個進程(PID=1),讀取 /etc/inittab 配置。每行格式:id:runlevels:action:process
id:唯一識別碼runlevels:適用執行等級(0-6)action:respawn(重啟)、wait(等待結束)、once(執行一次)、boot(啟動時執行)、bootwait、off、initdefault(預設等級)、sysinit、powerwait/fail/okwait、ctrlaltdelprocess:要執行的指令# 執行等級定義 # 0 - halt # 1 - Single user # 2 - Multiuser no NFS # 3 - Full multiuser # 4 - unused # 5 - X11 # 6 - reboot id:3:initdefault: # 預設等級 3 si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 ca::ctrlaltdel:/sbin/shutdown -t3 -r now pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure" pr:12345:powerokwait:/sbin/shutdown -c "Power Restored" 1:2345:respawn:/sbin/mingetty tty1 ... 6:2345:respawn:/sbin/mingetty tty6 x:5:respawn:/etc/X11/prefdm -nodaemon
預設 6 個(Alt+F1~F6 切換)。若啟動圖形介面(startx),以 Ctrl+Alt+F1~F6 切字元終端,Ctrl+Alt+F7 回圖形。
logout 或 Ctrl+D#,一般使用者 $exitsu - 切換| 等級 | 說明 |
|---|---|
| 0 | 關機 |
| 1 | 單使用者維護模式 |
| 2 | 多使用者,無 NFS |
| 3 | 完整多使用者(預設文字模式) |
| 4 | 使用者自訂 |
| 5 | 多使用者 + X Window 圖形登入 |
| 6 | 重啟 |
查看目前等級:runlevel;切換:init [0-6] 或 telinit。
init 0/halt/poweroff:關機init 6/reboot:重啟shutdown:多使用者環境推薦,可發送警告訊息、阻止新登入、通知進程儲存資料shutdown [參數] time [warning-message]
time 格式:hh:mm | +m | now
參數:-t 秒延遲、-k 僅發警告、-r 重啟、-h 關機、-f 重啟跳過 fsck、-F 強制 fsck
例:shutdown -r +5 "5分鐘後重啟"
shutdown -h now
shutdown -r -F now