操作系统内核kernel启动后,操作系统开始初始化系统配置,第一个运行的程序便是/sbin/init。该程序会读取/etc/inittab文件,并依据此文件来进行初始化工作。
/etc/inittab
其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。不建议将一些用户级的初始化放置在该文件中。
在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序
/etc/rc.d/rc.sysinit
在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:调入keymap以及系统字体,启动swapping
,设置主机名,设置NIS域名,检查(fsck)并mount文件系统,打开quota,装载声卡模块,设置系统时钟,等等。
/etc/rc.d/rc $RUNLEVEL
/etc/rc.d/rc则根据其参数指定的运行模式($RUNLEVEL运行级别,在inittab文件中可以设置)来执行相应目录下的脚本,凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx 从小到大来执行,文件名中的数字用于区分执行顺序,数值小的先执行,数值大的后执行。例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在 rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正执行命令的为init.d里的脚本。
/etc/rc.d/rc.local
用户自定义的开机启动项可以放置在该文件中
/sbin/mingetty
等待用户登录