天天看点

/etc/inittab

<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&gt; /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 &lt;name&gt;       "chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口,如有缺少,则会从缺省的init脚本自动建立"

chkconfig --del &lt;name&gt; "删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除"

chkconfig [--level &lt;levels&gt;] &lt;name&gt; &lt;on|off|reset|resetpriorities&gt;

如何增加一个服务:

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,如需转载请自行联系原作者