Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

/etc/inittab 詳解:SysVinit 運行級別與啟動腳本控制

編輯:Linux 教學

/etc/inittab 是 SysVinit 系統的核心配置文件,定義了運行級別、系統初始化腳本、終端啟動、關機重啟動作等。本文詳細解析每欄含義、運行級別定義、action 類型及典型配置示例。

文件格式

id:runlevels:action:process [arguments]
欄位說明
id標識符,2-4 字符,唯一
runlevels生效的運行級別集合(如 123、2345)
action動作類型(詳見下表)
process執行的命令及參數

運行級別定義

級別名稱說明
0Halt關機
1 / S / sSingle單用戶維護模式
2Multi-user無網絡多用戶
3Multi-user + Net完整多用戶(文本界面)
4User defined預留自定義
5X11圖形界面多用戶
6Reboot重啟
a,b,cOnDemand按需啟動,不切換級別

Action 類型詳解

Action行為
initdefault設置默認運行級別,process 被忽略
sysinit系統啟動最先執行,優先於 boot/bootwait
boot啟動過程執行,忽略運行級別
bootwait啟動過程執行,等待結束
wait進入指定級別執行一次,init 等待結束
once進入指定級別執行一次,init 不等待
respawn進程退出自動重啟(如 getty、login)
off不執行,等同註釋
ondemand當調用 a/b/c 級別時執行
ctrlaltdel捕獲 Ctrl+Alt+Del 組合鍵
powerfail/powerwait/powerokwait電源故障/恢復相關
kbrequest鍵盤特殊組合鍵觸發

典型配置示例

# 默認運行級別 3(文本多用戶)
id:3:initdefault:

# 系統初始化:掛載文件系統、啟動交換分區、設置主機名等
si::sysinit:/etc/rc.d/init.d/rc sysinit

# 各運行級別對應的 rc 腳本
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

# Ctrl+Alt+Del 重啟
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# 單用戶模式要求密碼(增強安全性)
su:S016:once:/sbin/sulogin

# 6 個虛擬終端(tty1-tty6),X 通常佔用 tty7
1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600

關鍵點

  • rc 腳本通常調用 /etc/rc.d/rc[0-6].d/ 下的 S*(啟動)和 K*(停止)腳本
  • respawn 確保關鍵服務(getty、重要守護進程)持續運行
  • sulogin 在單用戶模式強制驗證密碼,防止物理接觸繞過認證
  • 修改後無需重啟,init q 或 telinit q 重讀配置

systemd 時代的變化

現代發行版(RHEL 7+、Ubuntu 15.04+、Debian 8+)已遷移至 systemd,/etc/inittab 不再使用。systemd 通過 target(multi-user.target、graphical.target)替代運行級別,服務由 .service 單元管理。但理解 inittab 有助於維護舊系統及理解啟動邏輯演進。

Copyright © Windows教程網 All Rights Reserved