INITTAB(5) Linux 系統管理員手冊 INITTAB(5)

inittab - 與 sysv 相容的 init 程序使用的初始化檔案格式

描述

inittab 檔案描述在系統引導及通常的操作期間, 都啟動哪些程序 (比如 /etc/init.d/boot, /etc/init.d/rc, getty 等等). Init(8) 討論有關 runlevels (執行級) 的概念, 每一個 執行級都有它自己啟動程序的集合. 有效的執行級 為 0-6 加上用於 ondemand 條目 的 A, BC. inittab 檔案中的每一個條目有如下的格式:

id:runlevels:action:process

以 `#' 開頭的行被忽略.
inittab 檔案中條目的唯一標識, 限於 1-4 個字元 (如果是用版本號小於 5.2.18 或 a.out 的庫編譯生成的 sysvinit 程式, 則僅限於 2 個字元).

注意: 對於 getty 或其它的註冊程序, id 必須是 響應的終端線路的 tty 字尾, 如 1 響應 tty1, 否則, 註冊過程不能正常的工作.

列出發生指定動作的執行級.
描述要發生的動作.
要執行的程序. 如果 process 域以一個 `+' 開頭, init 不會在 utmp 和 wtmp 檔案中為此程序記帳. 這是由於 getty 自己主持 utmp/wtmp 記帳的需要, 同時這也是一個歷史遺留的漏洞.

runlevels 域可以包含表示不同執行級的多 個字元, 例如 123 表示本程序在執行級為 1, 2 和 3 時都要啟動. 用於 ondemand 條目的 runlevels 域可以 包含 A, B, 或 C. 用於 sysinit, boot, 和 bootwait 條目的 runlevels 域被忽略.

當改變執行級時, 在新執行級中沒有給出的那些正在 執行的程序被殺死, 先使用 SIGTERM 訊號, 然後是 SIGKILL.

action 域可以使用的動作有:

該程序只要終止就立即重新啟動 (如 getty).
只要進入指定的執行級就啟動本程序, 並且 init 等待該程序的結束.
只要進入指定的執行級就啟動一次本程序.
在系統引導期間執行本程序. runlevels 域被忽略.
在系統引導期間執行本程序. 並且 init 等待該程序的結束 (如 /etc/rc). runlevels 域被忽略.
什麼也不做.
在進入 ondemand 執行級時才會執行 標記為 ondemand 的那些程序. 無論怎樣, 實際上沒有改變執行級 (ondemand 執行級就是 `a', `b', 和 `c').
initdefault 條目給出系統引導 完成後進入的執行級, 如果不存在這樣的條目, init 就會在控制檯詢問要進入的執行級. process 域被忽略.
系統引導期間執行此程序. 本程序會在 boot bootwait 條目之前得到執行. runlevels 域被忽略.
本程序在電源不足時執行. 通常在有程序把 UPS 和計算機相連時 通知 init 程序, Init 在繼續其它工作 之前要等待此程序結束.
類似 powerwait, 但是init 不等待 此程序完成.
init 收到電源已經恢復的通知後 立即執行此程序.
本程序在 init 被告知 UPS 電源快耗盡 同時外部電源失敗 (無效) 時被執行. (假設 UPS 和監視程序能夠發現這樣的情況).
init 收到 SIGINT 訊號時執行此程序. 這意味著有人在控制檯按下了 CTRL-ALT-DEL 組合鍵, 典型地, 可能是想執行類似 shutdown 然後進入單使用者模式或 重新引導機器.
本程序在 init 收到一個從控制檯 鍵盤產生的特殊組合按鍵訊號時執行.

對於此功能本文件尚未完成; 可以在 kbd-x.xx 包中 找到更多資訊 (在寫作本文件時最新的是 kbd-0.94). 當然你可能想為某些 "KeyboardSignal" 行為 對映組合鍵, 如為了對映 (Alt-上箭頭) 可以在鍵盤對映檔案中 使用如下的方式:

alt keycode 103 = KeyboardSignal

舉例

這是一個與老的 Linux inittab 檔案類似的例子檔案:

# inittab for linux
id:1:initdefault:
rc::bootwait:/etc/rc
1:1:respawn:/etc/getty 9600 tty1
2:1:respawn:/etc/getty 9600 tty2
3:1:respawn:/etc/getty 9600 tty3
4:1:respawn:/etc/getty 9600 tty4
本檔案在引導時執行 /etc/rc 並且在 ty1-tty4 上啟動 getty 程序.

一個更詳盡的 inittab 會有不同的執行級 (參考本身的註釋):

# 進入預設的執行級
id:2:initdefault:
# 在進行其它工作之前先完成系統初始化.
si::sysinit:/etc/rc.d/bcheckrc
# 執行級 0 掛起系統, 6 重新引導, 1 單使用者模式.
l0:0:wait:/etc/rc.d/rc.halt
l1:1:wait:/etc/rc.d/rc.single
l2:2345:wait:/etc/rc.d/rc.multi
l6:6:wait:/etc/rc.d/rc.reboot
# "3 個鍵" 按下時要做的工作.
ca::ctrlaltdel:/sbin/shutdown -t5 -rf now
# 執行級2和3: 在控制檯生成 getty 程序, 執行級為3時在 modem 上生成 getty.
1:23:respawn:/sbin/getty tty1 VC linux
2:23:respawn:/sbin/getty tty2 VC linux
3:23:respawn:/sbin/getty tty3 VC linux
4:23:respawn:/sbin/getty tty4 VC linux
S2:3:respawn:/sbin/uugetty ttyS2 M19200

檔案

/etc/inittab

作者

Init 由 Miquel van Smoorenburg (miquels@cistron.nl) 所寫. 本手冊頁由 Sebastian Lederer (lederer@francium.informatik.uni-bonn.de) 所寫, 由 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de) 修改.

參考

init(8), telinit(8)

中文版維護人

Yin Huaming <yhmact@pzh-public.sc.cninfo.net>

中文版最新更新

2002年7月13日

中國 Linux 論壇 man 手冊頁翻譯計劃

http://cmpp.linuxforum.net

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

May 19, 1998