inittab是Linux系统的第一个进程init启动后用到的配置文件。这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级初始化时运行的命令; 开机、关机、重启对应的命令;各运行级登陆时所运行的命令。
CentOS 5.5中使用的init程序是传统的sysvinit,init的需要的大部分配置都在/etc/inittab文件中。CentOS 6.4中使用init程序变成了UpStart,名字依然是init,但是配置分散到/etc/init/*.conf 多个文件中。本文主要讲解CentOS 5.5中inittab文件的格式。
Linux内核在开机启动后加载的用户态第一个进程是/sbin/init,然后由它来启动后面的任务,包括多用户环境,网络等。init的配置文件inittab中定义了许多和启动相关的信息,包括常用到的默认启动级别,启动某个级别需要的服务等。
inittab文件中的基本格式:
id:runlevels:action:process
各个字段表示:
id: 标识符,在配置文件中不能重复。
runlevels: 在哪个级别运行此行;
action: 在什么情况下执行此行;
process: 要运行程序;
action常见的有如下几种:
initdefault: 设定默认运行级别,不需要指定process
sysinit: 系统初始化时
wait: 执行第4项指定的process,并等待它执行完毕
respawn: 一旦程序终止,会重新启动
一般inittab文件中会有如下几种配置:
id:3:initdefault: ---- 定义默认启动级别
si::sysinit:/etc/rc.d/rc.sysinit---- 系统初始化阶段调用rc.sysinit
l0:0:wait:/etc/rc.d/rc 0---- 调用rc脚本,传入运行级别作为参数,启动和关闭对应级别的服务
ca::ctrlaltdel:/sbin/shutdown -t3 -r now ---- ctrl+alt+del组合按键的动作
1:2345:respawn:/sbin/mingetty tty1 ---- 6个虚拟终端
x:5:respawn:/etc/X11/prefdm -nodaemon ---- 运行级别为5时启动窗口显示管理器