.\"{{{}}} .\"{{{ Title .TH INITTAB 5 "May 19, 1998" "" "Linux 系統管理員手冊" .\"}}} .\"{{{ Name .SH NAME inittab \- 與 sysv 兼容的 init 進程使用的初始化文件格式 .\"}}} .\"{{{ Description .SH 描述 \fBinittab\fP 文件描述在系統引導及通常的操作期間, 都啓動哪些進程 (比如 \& /etc/init.d/boot, /etc/init.d/rc, getty 等等). .BR Init (8) 討論有關 \fIrunlevels (運行級)\fP 的概念, 每一個 運行級都有它自己啓動進程的集合. 有效的運行級 爲 \fB0\fP\-\fB6\fP 加上用於 \fBondemand\fP 條目 的 \fBA\fP, \fBB\fP 和 \fBC\fP. \fBinittab\fP 文件中的每一個條目有如下的格式: .RS .sp \fIid\fP:\fIrunlevels\fP:\fIaction\fP:\fIprocess\fP .sp .RE 以 `#' 開頭的行被忽略. .\"{{{ id .IP \fIid\fP .B inittab 文件中條目的唯一標識, 限於 1-4 個字符 (如果是用版本號小於 5.2.18 或 a.out 的庫編譯生成的 sysvinit 程序, 則僅限於 2 個字符). .sp 注意: 對於 getty 或其它的註冊進程, \fIid\fP 必須是 響應的終端線路的 tty 後綴, 如 \fB1\fP 響應 \fBtty1\fP, 否則, 註冊過程不能正常的工作. .\"}}} .\"{{{ runlevels .IP \fIrunlevels\fP 列出發生指定動作的運行級. .\"}}} .\"{{{ action .IP \fIaction\fP 描述要發生的動作. .\"}}} .\"{{{ process .IP \fIprocess\fP 要執行的進程. 如果 process 域以一個 `+' 開頭, .B init 不會在 utmp 和 wtmp 文件中爲此進程記帳. 這是由於 getty 自己主持 utmp/wtmp 記帳的需要, 同時這也是一個歷史遺留的漏洞. .\"}}} .PP \fIrunlevels\fP 域可以包含表示不同運行級的多 個字符, 例如 \fB123\fP 表示本進程在運行級爲 1, 2 和 3 時都要啓動. 用於 \fBondemand\fP 條目的 \fIrunlevels\fP 域可以 包含 \fBA\fP, \fBB\fP, 或 \fBC\fP. 用於 \fBsysinit\fP, \fBboot\fP, 和 \fBbootwait\fP 條目的 \fIrunlevels\fP 域被忽略. .PP 當改變運行級時, 在新運行級中沒有給出的那些正在 運行的進程被殺死, 先使用 \s-2SIGTERM\s0 信號, 然後是 \s-2SIGKILL\s0. .PP \fIaction\fP 域可以使用的動作有: .\"{{{ respawn .IP \fBrespawn\fP 該進程只要終止就立即重新啓動 (如 \& getty). .\"}}} .\"{{{ wait .IP \fBwait\fP 只要進入指定的運行級就啓動本進程, 並且 .B init 等待該進程的結束. .\"}}} .\"{{{ once .IP \fBonce\fP 只要進入指定的運行級就啓動一次本進程. .\"}}} .\"{{{ boot .IP \fBboot\fP 在系統引導期間執行本進程. \fIrunlevels\fP 域被忽略. .\"}}} .\"{{{ bootwait .IP \fBbootwait\fP 在系統引導期間執行本進程. 並且 .B init 等待該進程的結束 (如 \& /etc/rc). \fIrunlevels\fP 域被忽略. .\"}}} .\"{{{ off .IP \fBoff\fP 什麼也不做. .\"}}} .\"{{{ ondemand .IP \fBondemand\fP 在進入 \fBondemand\fP 運行級時纔會執行 標記爲 \fBondemand\fP 的那些進程. 無論怎樣, 實際上沒有改變運行級 (\fBondemand\fP 運行級就是 `a', `b', 和 `c'). .\"}}} .\"{{{ initdefault .IP \fBinitdefault\fP \fBinitdefault\fP 條目給出系統引導 完成後進入的運行級, 如果不存在這樣的條目, .B init 就會在控制檯詢問要進入的運行級. \fIprocess\fP 域被忽略. .\"}}} .\"{{{ sysinit .IP \fBsysinit\fP 系統引導期間執行此進程. 本進程會在 \fBboot\fP 或 \fB bootwait\fP 條目之前得到執行. \fIrunlevels\fP 域被忽略. .\"}}} .\"{{{ powerwait .IP \fBpowerwait\fP 本進程在電源不足時執行. 通常在有進程把 UPS 和計算機相連時 通知 init 進程, \fBInit\fP 在繼續其它工作 之前要等待此進程結束. .\"}}} .\"{{{ powerfail .IP \fBpowerfail\fP 類似 \fBpowerwait\fP, 但是\fBinit\fP 不等待 此進程完成. .\"}}} .\"{{{ powerokwait .IP \fBpowerokwait\fP 在 \fBinit\fP 收到電源已經恢復的通知後 立即執行此進程. .\"}}} .\"{{{ powerfailnow .IP \fBpowerfailnow\fP 本進程在 \fBinit\fP 被告知 UPS 電源快耗盡 同時外部電源失敗 (無效) 時被執行. (假設 UPS 和監視進程能夠發現這樣的情況). .\"}}} .\"{{{ ctrlaltdel .IP \fBctrlaltdel\fP 在 \fBinit\fP 收到 SIGINT 信號時執行此進程. 這意味着有人在控制檯按下了 \fBCTRL\-ALT\-DEL\fP 組合鍵, 典型地, 可能是想執行類似 \fBshutdown\fP 然後進入單用戶模式或 重新引導機器. .\"}}} .\"{{{ kbrequest .IP \fBkbrequest\fP 本進程在 \fBinit\fP 收到一個從控制檯 鍵盤產生的特殊組合按鍵信號時執行. .sp 對於此功能本文檔尚未完成; 可以在 kbd-x.xx 包中 找到更多信息 (在寫作本文檔時最新的是 kbd-0.94). 當然你可能想爲某些 "KeyboardSignal" 行爲 映射組合鍵, 如爲了映射 (Alt-上箭頭) 可以在鍵盤映射文件中 使用如下的方式: .RS .sp alt keycode 103 = KeyboardSignal .sp .RE .\"}}} .\"}}} .\"{{{ Examples .SH 舉例 這是一個與老的 Linux inittab 文件類似的例子文件: .RS .sp .nf .ne 7 # 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 .fi .sp .RE 本文件在引導時執行 \fB/etc/rc\fP 並且在 ty1\-tty4 上啓動 getty 進程. .PP 一個更詳盡的 \fBinittab\fP 會有不同的運行級 (參考本身的註釋): .RS .sp .nf .ne 19 # 進入默認的運行級 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 .fi .sp .RE .\"}}} .\"{{{ Files .SH 文件 /etc/inittab .\"}}} .\"{{{ Author .SH 作者 \fBInit\fP 由 Miquel van Smoorenburg (miquels@cistron.nl) 所寫. 本手冊頁由 Sebastian Lederer (lederer@francium.informatik.uni-bonn.de) 所寫, 由 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de) 修改. .\"}}} .\"{{{ See also .SH 參考 .BR init (8), .BR telinit (8) .\"}}} .SH 中文版維護人 .B Yin Huaming .SH 中文版最新更新 2002年7月13日 .SH 中國 Linux 論壇 man 手冊頁翻譯計劃 .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR