/etc/inittab
Label:Runlevel:Action:Process

·    label       1~4个字符的标签,用来标示输入的值。一些系统只支持2个字符的标签。所以多数人都将标签字符的个数限制在2个以内。该标签可以是任意字符构成的字符串,但实际上,某些特定的标签是常用的,Red Hat Linux中使用的标签是:

 

    
  1. 1)id  用来定义缺省的init运行的级别 
  2. 2)si  是系统初始化的进程 
  3. 3)ln  其中的n从1~6,指明该进程可以使用的runlevel 的级别 
  4. 4)ud  是升级进程 
  5. 5)ca  指明当按下Ctrl+Alt+Del 时运行的进程 
  6. 6)pf  指当UPS断电时运行的进程 
  7. 7)pr  是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程 
  8. 8)x   是将系统转入X终端时需要运行的进程 

·    runlevel 字段指定runlevel的级别。可以指定多个runlevel级别,也可以不为runlevel字段指定特定的值。

·    action     字段定义了该进程应该运行在何种状态下:

 

    
  1. 9) boot             系统引导进程中,进程运行,init将忽略运行等级这段 
  2. 10)bootwait         系统引导过程中,进程运行,init将等待进程结束.忽略runlevel 
  3. 11)ctrlaltdel       当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略 runlevel 
  4. 12)initdefault      不要执行这个进程,它用于设置默认runlevel 
  5. 13)kbrequest       当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档) 
  6. 14)off              不采取任何行动,功能相当于将这行用#注释掉 
  7. 15)once             每一个runlevel级别只运行一次 
  8. 16)ondemand      当系统指定特定的运行级别A、B、C时运行 
  9. 17)powerfail        当init收到SIGPWR信号时运行 
  10. 18)powerokwait      当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行,一般当电源故障修复时运行 
  11. 19)powerwait        当收到SIGPWD信号,并且init等待进程结束时运行,一般为电源故障时运行 
  12. 20)respawn          只要进程一停止,该进程就重新启动 
  13. 21)sysinit          只要系统引导,该进程便运行,优先于boot与bootwait 
  14. 22)wait           进程只运行一次,init将一直等待它结束,再执行其它命令 

·    process  字段包含init执行的进程,该进程采用的格式与在命令行下运行该进程的格式一样,因此process字段都以该进程的名字开头,紧跟着是运行时要传递给该进程的参数。

 

    
  1. [root@rhel5 ~]$ cat /etc/inittab                                         
  2. #表示当前缺省运行级别为3(initdefault)                                           
  3. id:3:initdefault:                                                    
  4.                                                              
  5. #系统初始化                                                   
  6. #/etc/rc.d/rc.sysinit主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。          
  7. #主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。              
  8. si::sysinit:/etc/rc.d/rc.sysinit                                                 
  9.                                                              
  10. #当运行级别为n时,以n为参数运行/etc/rc.d/rc脚本,init将等待其返回(wait)                             
  11. l0:0:wait:/etc/rc.d/rc 0                                                 
  12. l1:1:wait:/etc/rc.d/rc 1                                                 
  13. l2:2:wait:/etc/rc.d/rc 2                                                 
  14. l3:3:wait:/etc/rc.d/rc 3                                                 
  15. l4:4:wait:/etc/rc.d/rc 4                                                 
  16. l5:5:wait:/etc/rc.d/rc 5                                                 
  17. l6:6:wait:/etc/rc.d/rc 6                                                 
  18.                                                              
  19. #在启动过程中允许按CTRL-ALT-DELETE重启系统                                    
  20. ca::ctrlaltdel:/sbin/shutdown -t3 -r now                                         
  21.                                                              
  22. #Power Failure; System Shutting Down                                         
  23. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"                      
  24.                                                              
  25. #If power was restored before the shutdown kicked in, cancel it.                             
  26. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"                      
  27.                                                              
  28. #在2345级别上以ttyX为参数执行/sbin/mingetty程序,打开ttyX终端用于用户登录,如果进程退出则重启mingetty程序(respawn)  
  29. 1:2345:respawn:/sbin/mingetty tty1                                           
  30. 2:2345:respawn:/sbin/mingetty tty2                                           
  31. 3:2345:respawn:/sbin/mingetty tty3                                           
  32. 4:2345:respawn:/sbin/mingetty tty4                                           
  33. 5:2345:respawn:/sbin/mingetty tty5                                           
  34. 6:2345:respawn:/sbin/mingetty tty6                                           
  35.                                                              
  36. #在5级别上运行xdm程序,提供xdm图形方式登录界面,并在退出时重新执行(respawn)                       
  37. x:5:respawn:/etc/X11/prefdm -nodaemon                                        
respawn 选项:当一种守护进程死亡的时候将自动重启守护进程
方法:将可执行文件的名称放入 /etc/inittab 文件中 , 并添加 respawn 选项 , 只要系统保持在同一个运行级别上 ,init 就会在系统进入一个运行级别时启动该守护进程 , 然后监视并确保该守护进程保持运行状态 ( 如果发现其死亡 , 则自动重启该守护进程 )
 

    
  1. [root@rhel5 rc3.d]# cat /etc/inittab | grep respawn 
  2. 1:2345:respawn:/sbin/mingettytty1 
  3. 2:2345:respawn:/sbin/mingetty tty2 
  4. 3:2345:respawn:/sbin/mingettytty3 
  5. 4:2345:respawn:/sbin/mingettytty4 
  6. 5:2345:respawn:/sbin/mingetty tty5 
  7. 6:2345:respawn:/sbin/mingetty tty6 
  8. x:5:respawn:/etc/X11/prefdm -nodaemon 
  9. sn:2345:respawn:/usr/local/scripts/start_snmpd> /dev/null 
  10.   
  11. [root@rhel5 rc3.d]# cat /usr/local/scripts/start_snmpd 
  12. #! bin/bash 
  13. exec /usr/sbin/snmpd -s -p /var/run/snmpd -l /dev/null  
 
==========================================================
chkconfig     主要用来更新和查询系统服务的运行级信息 , 只是简单的改变了符号连接 ( 立即自动禁止或激活一个服务 ).
用法
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 " 修改服务的默认启动等级 "