/etc/inittab文件有一个基本类型命令,它指定命令行。命令行的格式大体如下:

  1. id:runlevels:action:command 

id是任意一个名称(具体是什么并不重要):runlevels是一个数字串(代表运行级别);command指定执行的实际命令。以启动getty的命令行举例,如下所示。

  1. 1:2345:respawn:/sbin/getty 38400 tty1 
  2. 2:23:respawn:/sbin/getty 38400 tty2 
  3. 3:23:respawn:/sbin/getty 38400 tty3 
  4. 4:23:respawn:/sbin/getty 38400 tty4 
  5. 5:23:respawn:/sbin/getty 38400 tty5 
  6. 6:23:respawn:/sbin/getty 38400 tty6 

该命令告诉init,它应该在引导后以运行级别2~5运行命令/sbin/getty 38400 tty1。动作标记respawn表示命令在退出时重新运行(当用户在shell中输入exit的时候)
从上面的文件中可以看出,运行级别2和3 有六个活动的gettys,而级别4和5只有一个。假设运行级别4下有三个shell运行在虚拟控制台。你在id为2和3的命令行的“运行级别”字段添加了数字4,也就是说做了替换。

  1. 2:23:respawn:/sbin/getty 38400 tty2 
  2. 3:23:respawn:/sbin/getty 38400 tty3 

替换成

  1. 2:234:respawn:/sbin/getty 38400 tty2 
  2. 3:234:respawn:/sbin/getty 38400 tty3 

然后重启或执行以下命令:

  1. #telinit q 

对inittab进行修改。telinit q命令指示init重新加载它的配置。
/etc/inittab重要的动作标记如下所示:

  1. respawn:启动命令并进行监视命令的执行,当进程退出时,再次执行该命令。 
  2. wait:进入指定运行级别时,启动进程。init会停下来,直到执行完成。这个标记对于设置指定等级下的软件的启动。 
  3. once:进入指定的任一运行等级时,启动一次进程。 
  4. boot:该命令在系统引导时运行。这种类型的指令忽略运行等级。 
  5. bootwait:该命令在系统指导时运行,init等它退出后才能继续做别的事。 
  6. off:禁用所有运行等级下的某个命令。 
  7. initdefault:指定在系统引导时进入哪个运行等级。 
  8. powerwait:给出在电源不足时需要执行的命令。init直到进程完成后才继续工作。 
  9. powerfail:与powerwait类似,但init不等待进程完成。 
  10. powerworkwait:电源正常后执行。init暂停,直到进程结束。 
  11. ctrlaltdel:指定init在捕获Ctrl+Alt+Del组合键时执行的命令。 
  12. kbdrequest:把特殊动作映射到特定的按键。 

Debian init 设置的重点在"/etc/init.c"目录。该目录包含了启动或停止重要软件的脚本,为了简化操作,规定每个脚本都使用相同的一套参数——start或stop。
例如:

  1. debian:~# /etc/init.d/bootlogd start 

启动bootlogd。

  1. debian:~# /etc/init.d/bootlogd stop 

关闭bootlogd。
作为一个用户工具,这是非常有用的,它让用户轻松启动和关闭Debian所带的复杂程序,不过在考虑如何启动程序前,先检查"/etc/init.d",看看是不是已经有脚本可以进行该操作。
借助这种机制,可以按自己的需求来调整级别,"/etc/init.d/rc"可以把系统引入所需的运行级别。
rc在运行等级目录中按照逻辑顺序处理每个脚本。首先,前缀为"K"的每个文件都以参数stop(按字母和数字顺序)执行;其次,以"S"为前缀的每个脚本都以参数start(按字母和数字顺序)执行。