【Linux笔记】Linux中inittab剖析
Linux完成内核(Kernel)引导后,会由init初始化进程调用/etc/inittab配置文件(ps -aux | less,init进程号为始终为1,是所有系统进程的起点,init进程也有一个PID为0的父进程Kernel Scheduler,该进程用来分配CPU时间和进行进程间切换。)。
/etc/inittab文件格式:id:run-levels:action:process,共包含4项,用冒号分隔,其中某些部份可以为空,各项详细解释如下:
id
标识符,一般为两位字母或数字,该标识符唯一,在配置文件中不能重复。
run-level
指定系统运行级,即执行登记项的init级别。用于指定相应的登记项适用于哪一个运行级,即在哪一个运行级中被处理。如果该字段为空,那么相应的登记项将适用于所有的运行级。在该字段中,可以同时指定一个或多个运行级,其中各运行级分别以数字0 1 2 3 4 5 6或字母a、b、c 表示,且无需对其进行分隔。
Linux有7个运行级,如下:
0-halt 关机,让init关闭所有进程并关机
1-Single user mode 单用户字符界面,通常又称为s或S
2-Multiuser,without NFS 不具备网络文件系统功能的多用户字符界面
3-Full multiuser mode 具备网络文件系统功能的多用户字符界面
4-unused 保留不用
5-X11 具备网络功能的图形用户界面
6-reboot 关闭所有运行的进程并重新启动系统
除此之外还有ABC三个运行级别,但在Linux都没有意义。
action
指定运行动作,用于指定init(M)命令或进程对相应进程(在“process”字段定义)所实施的动作,有以下几种:
行为 | 描述 |
respawn
|
一旦第4项指定的process命令中止,便重新运行该命令。 |
wait
|
执行第4项指定的process,并等其结束后再运行其它命令。
|
once
|
执行第4项指定的process,不等待它执行完成,继续运行其它命令。
|
boot
|
不论在哪个执行等级,系统启动时都会运行第4项指定的process。
|
bootwait
|
不论在哪个执行等级,系统启动时都会运行第4项指定的process,且一直等它执行完备。
|
off
|
关闭任何动作,相当于忽略该配置行。
|
ondemand
|
进入ondemand执行等级时,执行第4项指定的process。
|
initdefault
|
系统启动后进入的执行等级,该行不需要指定process。
|
sysinit
|
不论在哪个执行等级,系统会在执行boot及bootwait之前执行第4项指定的process。
|
powerwait
|
当系统的供电不足时执行第4项指定的 process,且一直等它执行完毕。
|
powerokwait
|
当系统的供电恢复正常时执行第4项指定的process,且一直等它执行完毕。
|
powerfailnow
|
当系统的供电严重不足时执行第4项指定的process。
|
powerfail
|
当出现电源错误时执行第4项指定的process命令,不等待其结束。
|
ctrlaltdel
|
当用户按下【Ctrl+Alt+Del】时执行第4项指定的 process。
|
kbrequest
|
当用户按下特殊的组合键时执行第4项指定的process,此组合键需在keymaps文件定义。
|
process
指定要运行的Shell脚本/命令。