1. inittab是什么

  Inittat其实是Linux初始化文件系统时init初始化应用程序用到的配置文件。这个文件存放了init初始化程序从哪里去执行初始化脚本,并且说明该脚本运行的时机及状态,如开机,关机,运行一次,返回运行等。

  Linux系统启动流程:上电=>根据BIOS设置从指定设备启动=>找到MBR上的bootloade引导启动r=>启动kernel=>启动init进程

  可以看到,Linux系统启动的最后是启动init进程,那么init进程是干什么的以及怎么干的呢?

  init进程是由内核启动的一个用户进程,可以说是系统进入上层之后的第一个进程(其实init进程之前还有一个idle进程),而init进程具体做些啥以及怎么做就列在inittab中了。

如inittab中通常有一行:

console::askfirst:-/bin/sh

 其中:console:当前程序运行在哪个终端上,这个可以在bootloader中指明,不写的话则默认是与init进程一样的控制台

  /bin/sh:执行的是什么程序

  -:一个交互式的程序

  askfirst:程序的运行方式,执行前先输出"Please press Enter to active this console"即退出之后会重新启动

2. inittab文件格式解析:

inittab文件解析

  inittab文件的格式: 

<id>:<runlevel>:<action>:<process>

  <id>:该程序运行在哪里(控制台)。如果省略,则使用和Init进程一样的控制台

  <runlevel>:运行的级别,在嵌入式Linux的busybox init程序中一般没有意义。

  <action>:程序运行的时机及状态

  一般action可选字段为:

  /etc/inittab文件中<action>字段说明

  <process>:要执行的程序或脚本,如果process字段前有“-”字符,表示这是一个可交互的程序。