/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(按字母和数字顺序)执行。
转载于:https://blog.51cto.com/pppcode/506604