条目(entry)的格式如下:

id:runlevels:action:process

⑴ id 字段:由 1-4 个字符组成,用来唯一标识条目。

⑵ runlevels 字段:运行级别,用来指定该条目适用于哪个运行级别。如果该字段为空,代表适用于 0 — 6 的运行级别。

⑶ action 字段:操作,允许的操作如下:

    ⒈respawn    如果 process 字段指定的进程不存在,就启动该进程,init 不会等待处理结束,而是继续扫描 inittab 文件。当该进程被终止时,init 将重新启动它。如果相应的进程已经存在,init 就忽略该条目并继续扫描inittab 文件。

    ⒉wait        启动进程并等待处理结束,处理结束后才去处理下一条条目。

    ⒊once        启动进程,不会等待处理结束,而是继续处理下一条条目。当该进程被终止时,init 不会重新启动它。从一个运行级别进入另一个运行级别时,如果相应的进程仍在运行,init 就不会重新启动该进程。

    ⒋boot        只在系统启动时,init 才处理这条条目,启动相应的进程,并不等待处理结束就去处理下一条条目。当这样的进程终止时,也不会重新启动它。

    ⒌bootwait    系统启动后,当第一次从单用户模式进入多用户模式时才处理该条目,init 启动这样的进程,并且等待其处理结束才处理下一条条目,当该进程被终止时,也不重新启动它。

    ⒍off        如果相应的进程正在运行,那么就发出一个警告信号,等待数秒后,再发出信号 SIGKILL 强制终止该进程。如果相应的进程不存在就忽略该条目。

    ⒎ondemand    与“respawn”的功能一样,但是只适用于运行级别为 A、B、C 的条目。

    ⒏initdefault    指定一个默认的运行级别,如果指定了多个运行级别,其中最大的数字将是默认的运行级别。如果 inittab 文件没有包含该条目,在系统启动时会请求用户为其指定一个默认的运行级别。

    ⒐sysinit    指定的进程在访问控制台之前执行,这样的条目仅用于对某些设备的初始化,目的是为了使 init 在这样的设备上向用户提问有关运行级别的问题,init 需要等待进程运行结束后才继续。

    ⒑powerwait    当 init 接到断电的信号时,处理指定的进程,并且等到处理结束后才去检查其他的条目。

    ⒒powerfail    当 init 接到断电的信号时,处理指定的进程,但是不等待该进程处理结束。

    ⒓powerokwait

    ⒔powerfailnow

    ⒕ctrlaltdel    当 init 收到信号时,执行指定进程。用来设置 Ctrl + Alt + Delete 组合键的功能。

    ⒖kbrequest

⑷ process 字段:该条目所要执行的进程,可以是任何合法的 shell 命令。



1    #
2    # inittab       This file describes how the INIT process should set up
3    #               the system in a certain run-level.
4    #
5    # Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
6    #               Modified for RHS Linux by Marc Ewing and Donnie Barnes
7    #
8    
9    # Default runlevel. The runlevels used by RHS are:
10    #   0 - halt (Do NOT set initdefault to this)
11    #   1 - Single user mode
12    #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
13    #   3 - Full multiuser mode
14    #   4 - unused
15    #   5 - X11
16    #   6 - reboot (Do NOT set initdefault to this)
17    #
18    id:3:initdefault:
设置了默认的运行级别为 3

19    
20    # System initialization.
21    si::sysinit:/etc/rc.d/rc.sysinit
如果运行级别在 0 — 6 之间,在访问控制台之前执行 /etc/rc.d 目录下的 rc.sysinit 脚本,用来初始化操作系统

22    
23    l0:0:wait:/etc/rc.d/rc 0
24    l1:1:wait:/etc/rc.d/rc 1
25    l2:2:wait:/etc/rc.d/rc 2
26    l3:3:wait:/etc/rc.d/rc 3
27    l4:4:wait:/etc/rc.d/rc 4
28    l5:5:wait:/etc/rc.d/rc 5
29    l6:6:wait:/etc/rc.d/rc 6
30    
31    # Trap CTRL-ALT-DELETE
32    ca::ctrlaltdel:/sbin/shutdown -t3 -r now
33    
34    # When our UPS tells us power has failed, assume we have a few minutes
35    # of power left.  Schedule a shutdown for 2 minutes from now.
36    # This does, of course, assume you have powerd installed and your
37    # UPS connected and working correctly.  
38    pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
39    
40    # If power was restored before the shutdown kicked in, cancel it.
41    pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
42    
43    
44    # Run gettys in standard runlevels
45    1:2345:respawn:/sbin/mingetty tty1
46    2:2345:respawn:/sbin/mingetty tty2
47    3:2345:respawn:/sbin/mingetty tty3
48    4:2345:respawn:/sbin/mingetty tty4
49    5:2345:respawn:/sbin/mingetty tty5
50    6:2345:respawn:/sbin/mingetty tty6
51    
52    # Run xdm in runlevel 5
53    x:5:respawn:/etc/X11/prefdm -nodaemon