<b>/etc/inittab</b>
Label:Runlevel:Action:Process
· <b>label </b>1~4个字符的标签,用来标示输入的值。一些系统只支持2个字符的标签。所以多数人都将标签字符的个数限制在2个以内。该标签可以是任意字符构成的字符串,但实际上,某些特定的标签是常用的,在Red Hat Linux中使用的标签是:
1)id 用来定义缺省的init运行的级别
2)si 是系统初始化的进程
3)ln 其中的n从1~6,指明该进程可以使用的runlevel 的级别
4)ud 是升级进程
5)ca 指明当按下Ctrl+Alt+Del 时运行的进程
6)pf 指当UPS断电时运行的进程
7)pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程
8)x 是将系统转入X终端时需要运行的进程
· <b>runlevel </b>字段指定runlevel的级别。可以指定多个runlevel级别,也可以不为runlevel字段指定特定的值。
· <b>action </b>字段定义了该进程应该运行在何种状态下:
9) boot 系统引导进程中,进程运行,init将忽略运行等级这段
10)bootwait 系统引导过程中,进程运行,init将等待进程结束.忽略runlevel
11)ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略 runlevel
12)initdefault 不要执行这个进程,它用于设置默认runlevel
13)kbrequest 当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档)
14)off 不采取任何行动,功能相当于将这行用#注释掉
15)once 每一个runlevel级别只运行一次
16)ondemand 当系统指定特定的运行级别A、B、C时运行
17)powerfail 当init收到SIGPWR信号时运行
18)powerokwait 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行,一般当电源故障修复时运行
19)powerwait 当收到SIGPWD信号,并且init等待进程结束时运行,一般为电源故障时运行
20)respawn 只要进程一停止,该进程就重新启动
21)sysinit 只要系统引导,该进程便运行,优先于boot与bootwait
22)wait 进程只运行一次,init将一直等待它结束,再执行其它命令
· <b>process </b> 字段包含init执行的进程,该进程采用的格式与在命令行下运行该进程的格式一样,因此process字段都以该进程的名字开头,紧跟着是运行时要传递给该进程的参数。
[root@rhel5 ~]$ cat /etc/inittab
#表示当前缺省运行级别为3(initdefault)
id:3:initdefault:
#系统初始化
#/etc/rc.d/rc.sysinit主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。
#主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
si::sysinit:/etc/rc.d/rc.sysinit
#当运行级别为n时,以n为参数运行/etc/rc.d/rc脚本,init将等待其返回(wait)
l0:0:wait:/etc/rc.d/rc 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
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
#在启动过程中允许按CTRL-ALT-DELETE重启系统
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
#Power Failure; System Shutting Down
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"
#在2345级别上以ttyX为参数执行/sbin/mingetty程序,打开ttyX终端用于用户登录,如果进程退出则重启mingetty程序(respawn)
1:2345:respawn:/sbin/mingetty tty1
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
#在5级别上运行xdm程序,提供xdm图形方式登录界面,并在退出时重新执行(respawn)
x:5:respawn:/etc/X11/prefdm -nodaemon
respawn选项:当一种守护进程死亡的时候将自动重启守护进程
方法:将可执行文件的名称放入/etc/inittab文件中,并添加respawn选项,只要系统保持在同一个运行级别上,init就会在系统进入一个运行级别时启动该守护进程,然后监视并确保该守护进程保持运行状态(如果发现其死亡,则自动重启该守护进程)
[root@rhel5 rc3.d]# cat /etc/inittab | grep respawn
1:2345:respawn:/sbin/mingettytty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingettytty3
4:2345:respawn:/sbin/mingettytty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
sn:2345:respawn:/usr/local/scripts/start_snmpd> /dev/null
[root@rhel5 rc3.d]# cat /usr/local/scripts/start_snmpd
#! bin/bash
exec /usr/sbin/snmpd -s -p /var/run/snmpd -l /dev/null
==========================================================
<b>chkconfig </b>主要用来更新和查询系统服务的运行级信息,只是简单的改变了符号连接(立即自动禁止或激活一个服务).
用法:
chkconfig --list [name]
chkconfig --add <name> "chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口,如有缺少,则会从缺省的init脚本自动建立"
chkconfig --del <name> "删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除"
chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities>
如何增加一个服务:
1)vi /etc/init.d/servicename "服务脚本必须存放在/etc/ini.d/目录下"
2)chkconfig --add servicename "在chkconfig工具服务列表中增加此服务,此时服务即会在/etc/rc.d/rcN.d中赋予K/S入口"
3)chkconfig --level 2345 servicename on "修改服务的默认启动等级"
本文转自Vnimos51CTO博客,原文链接:http://blog.51cto.com/vnimos/1042711,如需转载请自行联系原作者