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