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脚本/命令。