/etc/inittab文件有一个基本类型命令,它指定命令行.命令行的格式大体如下:
- id:runlevels:action:command
id是任意一个名称(具体是什么并不重要):runlevels是一个数字串(代表运行级别);command指定执行的实际命令.以启动getty的命令行举例,如下所示.
- 1:2345:respawn:/sbin/getty 38400 tty1
- 2:23:respawn:/sbin/getty 38400 tty2
- 3:23:respawn:/sbin/getty 38400 tty3
- 4:23:respawn:/sbin/getty 38400 tty4
- 5:23:respawn:/sbin/getty 38400 tty5
- 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,也就是说做了替换.
将
- 2:23:respawn:/sbin/getty 38400 tty2
- 3:23:respawn:/sbin/getty 38400 tty3
替换成
- 2:234:respawn:/sbin/getty 38400 tty2
- 3:234:respawn:/sbin/getty 38400 tty3
然后重启或执行以下命令:
- #telinit q
对inittab进行修改.telinit q命令指示init重新加载它的配置.
/etc/inittab重要的动作标记如下所示:
- respawn:启动命令并进行监视命令的执行,当进程退出时,再次执行该命令.
- wait:进入指定运行级别时,启动进程.init会停下来,直到执行完成.这个标记对于设置指定等级下的软件的启动.
- once:进入指定的任一运行等级时,启动一次进程.
- boot:该命令在系统引导时运行.这种类型的指令忽略运行等级.
- bootwait:该命令在系统指导时运行,init等它退出后才能继续做别的事.
- off:禁用所有运行等级下的某个命令.
- initdefault:指定在系统引导时进入哪个运行等级.
- powerwait:给出在电源不足时需要执行的命令.init直到进程完成后才继续工作.
- powerfail:与powerwait类似,但init不等待进程完成.
- powerworkwait:电源正常后执行.init暂停,直到进程结束.
- ctrlaltdel:指定init在捕获Ctrl Alt Del组合键时执行的命令.
- kbdrequest:把特殊动作映射到特定的按键.
Debian init 设置的重点在"/etc/init.c"目录.该目录包含了启动或停止重要软件的脚本,为了简化操作,规定每个脚本都使用相同的一套参数——start或stop.
例如:
- debian:~# /etc/init.d/bootlogd start
启动bootlogd.
- debian:~# /etc/init.d/bootlogd stop
关闭bootlogd.
作为一个用户工具,这是非常有用的,它让用户轻松启动和关闭Debian所带的复杂程序,不过在考虑如何启动程序前,先检查"/etc/init.d",看看是不是已经有脚本可以进行该操作.
借助这种机制,可以按自己的需求来调整级别,"/etc/init.d/rc"可以把系统引入所需的运行级别.
rc在运行等级目录中按照逻辑顺序处理每个脚本.,前缀为"K"的每个文件都以参数stop(按字母和数字顺序)执行;其次,以"S"为前缀的每个脚本都以参数start(按字母和数字顺序)执行.
|