/etc/inittab文件描述了哪些進程開始啟動并正常運行。inittab為linux初始化文件系統(tǒng)時init初始化程序用到的配置文件。這個文件負(fù)責(zé)設(shè)置init初始化程序初始化腳本在哪里;每個運行級初始化時運行的命令; 開機、關(guān)機、重啟對應(yīng)的命令;各運行級登陸時所運行的命令。
inittab文件中的條目的格式如下:
label:runlevels:action:process 下面分別介紹各個字段
1.label
label 是一個獨特的序列,確定了一個條目1 - 4字符,一些系統(tǒng)只支持2個字符的標(biāo)簽。對于getty或mingetty等其他login程序項,要求label與tty的編號相同,否則getty程序?qū)⒉荒苷9ぷ鳌?/p>
常用標(biāo)簽有:
id 用來定義缺省的init運行的級別
si 是系統(tǒng)初始化的進程
ln 其中的n從1~6,指明該進程可以使用的runlevel的級別
ud 是升級進程
ca 指明當(dāng)按下Ctrl+Alt+Del時運行的進程
pf 指當(dāng)UPS表明斷電時運行的進程
pr 是在系統(tǒng)真正關(guān)閉之前,UPS發(fā)出電源恢復(fù)的信號時需要運行的進程
x 是將系統(tǒng)轉(zhuǎn)入X終端時需要運行的進程
2.runlevels
runlevels 列出了運行級,指定應(yīng)該采取的動作。可以指定多個runlevel級別,也可以不為runlevel字段指定特定的值。
runlevel 0是讓init關(guān)閉所有進程并終止系統(tǒng)。
runlevel 1是用來將系統(tǒng)轉(zhuǎn)到單用戶模式,單用戶模式只能有系統(tǒng)管理員進入,在該模式下處理那些在有登錄用戶的情況下不能進行更改的文件,改runlevel的編號1也可以用S代替。
runlevel 2是允許系統(tǒng)進入多用戶的模式,但并不支持文件共享,這種模式很少應(yīng)用。
runlevel 3是最常用的運行模式,主要用來提供真正的多用戶模式,也是多數(shù)服務(wù)器的缺省模式。
runlevel 4一般不被系統(tǒng)使用,用戶可以設(shè)計自己的系統(tǒng)狀態(tài)并將其應(yīng)用到runlevel 4階段,盡管很少使用,但使用該系統(tǒng)可以實現(xiàn)一些特定的登錄請求。
runlevel 5是將系統(tǒng)初始化為專用的X Window終端。對功能強大的Linux系統(tǒng)來說,這并不是好的選擇,但用戶如果需要這樣,也可以通過在runlevel啟動來實現(xiàn)該方案。
runlevel 6是關(guān)閉所有運行的進程并重新啟動系統(tǒng)。
debian6以后默認(rèn)沒有運行/etc/inittab 文件 默認(rèn)級別為2-5歸為一類
3.action
action 字段定義了該進程應(yīng)該運行在何種狀態(tài)下,描述其后的process的運行方式的。:
respawn 不管何時終止都重新啟動進程
wait 運行進程等待輸入運行模式 這個過程將會開始一次運行級別時指定輸入和init將等待其終止
once 每一個runlevel級別運行一次 這個過程將執(zhí)行一次當(dāng)指定輸入runlevel
boot 在系統(tǒng)啟動時運行,忽略runlevel
bootwait 在系統(tǒng)啟動時運行,init等待進程完成。忽略runlevel
ctrlaltdel 當(dāng)Ctrl+Alt+Del三個鍵同時按下時運行,把SIGINT信號發(fā)送給init。忽略 runlevel
initdefault 不要執(zhí)行這個進程,它用于設(shè)置默認(rèn)runlevel
kbrequest 當(dāng)init從鍵盤中收到信號時運行。這里要求鍵盤組合符合KeyBoardSigra
off 禁止進入,因此該進程不運行
once 每一個runlevel級別運行一次
ondemand 當(dāng)系統(tǒng)指定特定的運行級別A、B、C時運行
powerfail 當(dāng)init收到SIGPWR信號時運行
powerokwait 當(dāng)收到SIGPWD信號且/etc/文件中的電源狀態(tài)包含OK時運行
powerwait 當(dāng)收到SIGPWD信號,并且init等待進程結(jié)束時運行
sysinit 在運行boot或bootwait進程之前運行
4.process
process字段包含init執(zhí)行的進程,該進程采用的格式與在命令行下運行該進程的格式一樣,因此process字段都以該進程的名字開頭,緊跟著是運行時要傳遞給該進程的參數(shù)。
代碼如下:
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
代碼如下:
# The default runlevel.
id:2:initdefault: #表示當(dāng)前缺省運行級別為2
代碼如下:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS #系統(tǒng)初始化的進程
代碼如下:
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
代碼如下:
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
代碼如下:
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
代碼如下:
# What to do when CTRL-ALT-DEL is pressed. #在啟動過程中是否允許按CTRL-ALT-DELETE重啟系統(tǒng)
#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
代碼如下:
# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
代碼如下:
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
代碼如下:
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# :::
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
# getty進程來提供虛擬終端設(shè)備的服務(wù)
1:2345:respawn:/sbin/getty 38400 tty1
代碼如下: