Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15483422
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: 嵌入式

2009-08-07 14:31:54

http://linuy.blog.51cto.com/770593/156089
条目(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,
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

http://hi.baidu.com/nmczn/blog/item/609b4e80fb118cd49023d977.html
# Begin /etc/inittab

id:3:initdefault:
#设置默认运行等级.init 首先读取这一行来确定运行级别.

si::sysinit:/etc/rc.d/init.d/rc sysinit
#init在处理其它运行等级的脚本之前,首先会执行这一行.
#对应于/etc/rc.d/rcsysinit.d中的脚本.
#是系统的初始化进程.用于设置主机名,挂载文件系统,启动交换分区等.

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
#对应于/etc/rc.d/rc[0-6].d中的脚本.

#配置行的排列语法为:
# id:runlevels:action:process [argument]
#id为标志字段,一般为2至4个字符.
#runlevel定义本行适用的运行等级.一般如下
#---------------------------------------------------------------------
#运行等级   |                                      说明
#--------|------------------------------------------------------------
#   0      |Halt,关闭系统.
#   1      |单用户,在grub启动时加上为kernel加上参数single即可进入此运行等级
#   2      |无网络多用户模式.
#   3      |有网络多用户模式.
#   4      |有网络多用户模式.
#   5      |X模式
#   6      |reboot重启系统
#   S/s    |同运行等级1
#   a,b,c |自定义等级,通常不使用.
#---------------------------------------------------------------------
#action定义采取的行动.
#---------------------------------------------------------------------
#    行动      |              说明
#---------------------------------------------------------------------
#   respawn   |只要进程一停止,该进程就重新启动.
#    wait     |进程只运行一次,init将一直等待它结束,再执行其它命令.
#    once     |进程只运行一次.
#    boot     |系统引导进程中,进程运行,init将忽略运行等级这段.
#   bootwait |系统引导过程中,进程运行,init将等待进程结束.
#     off     |不采取任何行动,功能相当于将这行用#注释掉.
# ondemand   |只要init调用a,b,c中的任何一种运行等级时,进程便运行.
#initdefault|系统设置默认运行级别.process字段被忽略.
#   sysinit   |只要系统引导,该进程便运行,优先于boot与bootwait.
# powerwait |当init接收到SIGPWR信号时进程开始运行,一般为电源故障时运行.
# powerfail |与powerwait相同,但init不会等待进程完成.
#powerokwait|当电源故障修复时运行.
# ctrialdel |当init收到SIGNT信号时(按下ctrl+alt+del)时,进程运行.
# kbrequest |当init收到键盘处理KeyboardSignal信号时,进程运行.
#----------------------------------------------------------------------

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
#在1-5运行等级中按下ctrl+alt+del时便重新启动系统.

su:S016:once:/sbin/sulogin
#在S,0,1,6等级下会运行sulogin.
#一般而言,如果在用grub或lilo启动时,如果为kernel加上single参数时,会直接进入单用户模式,而无需密码.造成一定安全隐患.加上这一行即可解决问题.

1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600
#设置tty控制台数量,一般为tty[1-6],X窗口系统一般运行在tty7.

# End /etc/inittab

http://blog.chinaunix.net/u/12066/showart_484426.html

/etc/inittab 文件的条目的格式是 id:runlevels:action:process 。但不是每个条目都有这么多字段的。例如 initdefault 就没有 process 字段

有些条目则没有 runlevel 字段,例如 sysinit ctrlaltdel 。某个字段为空,则用 :: 表示

 

[root@mail rc.d]# cat /etc/inittab

# Default runlevel. The runlevels used by RHS are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

id:5:initdefault:                                                    // 设置默认的启动级别。注意 initdefault” 关键字。

 

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit                                       // 设置系统初始化执行的脚本,是 /etc/rc.d/rc.sysinit ,级别是空。注意关键字是 sysinit

 

l0:0:wait:/etc/rc.d/rc 0                                         // l0 level 0 的缩写。其他同样。运行级别0 / 目录下的所有脚本执行结束

l1:1:wait:/etc/rc.d/rc 1       

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3                                         // 注意关键字 wait ,表示进入该级别后就只运行1次,且等待 rc.N 目录下的脚本都执行完再继续下一步

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

 

# Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now                   // id ca ,运行级别为空,关键字为 ctrlaltdel ,表示设置是否捕捉该组合键的信号

                                                                            默认接受。当按下该组合键时,在3秒(-t3)后会重启(-r)。

 

# When our UPS tells us power has failed, assume we have a few minutes

# of power left.  Schedule a shutdown for 2 minutes from now.

# This does, of course, assume you have powerd installed and your

# UPS connected and working correctly. 

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

 

# If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

 

 

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1                   // 表示启用1-6号虚拟控制台,运行级别是2345。关键字是 respawn ,表示只要 mingetty 进程被杀死,就

2:2345:respawn:/sbin/mingetty tty2                   // 自动再次启动。

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

 

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon      // 当运行级别是5时,还需要执行 /etc/X11/prefdm --nodeamon 来启动 display manager 登录窗口

[root@mail rc.d]#                                            // 同样也是 respawn ,这样用户注销后还是会返回登录界面

阅读(3217) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~