NAME¶
inittab - 與 sysv 相容的 init
進程使用的初始化檔案格式
inittab
檔案描述在系統引導及通常的操作期間,
都啟動哪些進程 (比如
/etc/init.d/boot, /etc/init.d/rc, getty 等等).
Init(8)
討論有關
runlevels (運行級)
的概念, 每一個
運行級都有它自己啟動進程的集合.
有效的運行級 為
0-
6
加上用於
ondemand 條目 的
A,
B 和
C.
inittab
檔案中的每一個條目有如下的格式:
id:
runlevels:
action:
process
以 `#' 開頭的行被忽略.
- id
- inittab
檔案中條目的唯一標識,
限於 1-4 個字符
(如果是用版本號小於
5.2.18 或 a.out
的庫編譯生成的 sysvinit
程式, 則僅限於 2
個字符).
注意: 對於 getty
或其它的注冊進程,
id 必須是
響應的終端線路的 tty
延伸檔名, 如 1 響應
tty1, 否則,
注冊過程不能正常的工作.
- runlevels
- 列出發生指定動作的運行級.
- action
- 描述要發生的動作.
- process
- 要執行的進程.
如果 process 域以一個 `+'
開頭, init 不會在 utmp 和 wtmp
檔案中為此進程記帳.
這是由於 getty 自己主持
utmp/wtmp 記帳的需要,
同時這也是一個歷史遺留的漏洞.
runlevels
域可以包含表示不同運行級的多
個字符, 例如
123
表示本進程在運行級為
1, 2 和 3 時都要啟動. 用於
ondemand 條目的
runlevels
域可以 包含
A,
B, 或
C. 用於
sysinit,
boot, 和
bootwait 條目的
runlevels
域被忽略.
當改變運行級時,
在新運行級中沒有給出的那些正在
運行的進程被殺死,
先使用 SIGTERM 信號, 然後是
SIGKILL.
action
域可以使用的動作有:
- respawn
- 該進程只要終止就立即重新啟動
(如 getty).
- wait
- 只要進入指定的運行級就啟動本進程,
並且 init
等待該進程的結束.
- once
- 只要進入指定的運行級就啟動一次本進程.
- boot
- 在系統引導期間執行本進程.
runlevels 域被忽略.
- bootwait
- 在系統引導期間執行本進程.
並且 init
等待該進程的結束 (如
/etc/rc). runlevels 域被忽略.
- off
- 什麼也不做.
- ondemand
- 在進入 ondemand
運行級時才會執行
標記為 ondemand
的那些進程.
無論怎樣,
實際上沒有改變運行級
( ondemand 運行級就是 `a', `b',
和 `c').
- initdefault
- initdefault
條目給出系統引導
完成後進入的運行級,
如果不存在這樣的條目,
init
就會在控制台詢問要進入的運行級.
process 域被忽略.
- sysinit
- 系統引導期間執行此進程.
本進程會在 boot 或
bootwait
條目之前得到執行.
runlevels 域被忽略.
- powerwait
- 本進程在電源不足時執行.
通常在有進程把 UPS
和電腦相連時 通知 init
進程, Init
在繼續其它工作
之前要等待此進程結束.
- powerfail
- 類似 powerwait,
但是init 不等待
此進程完成.
- powerokwait
- 在 init
收到電源已經恢復的通知後
立即執行此進程.
- powerfailnow
- 本進程在 init
被告知 UPS 電源快耗盡
同時外部電源失敗
(無效) 時被執行. (假設 UPS
和監視進程能夠發現這樣的情況).
- ctrlaltdel
- 在 init 收到 SIGINT
信號時執行此進程.
這意味著有人在控制台按下了
CTRL-ALT-DEL 組合鍵, 典型地,
可能是想執行類似
shutdown
然後進入單使用者模式或
重新引導機器.
- kbrequest
- 本進程在 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