init.d/ :各种服务器和程序的二进制文件存放目录。
rcx.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。具体的后边叙述。
还有三个脚本:rc.sysinit, rc, rc.local
redhat的启动方式和执行次序是:
1 |
加载内核 |
|
2 |
执行init程序 |
3 |
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本 |
|
4 |
/etc/rc.d/rc$RUNLEVEL.d/* # $RUNLEVEL为缺省的运行模式 |
5 |
/etc/rc.d/rc.local |
|
6 |
/sbin/mingetty # 等待用户登录 |
在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
1 |
调入keymap以及系统字体 |
|
2 |
启动swapping |
3 |
设置主机名 |
|
4 |
设置NIS域名 |
5 |
检查(fsck)并mount文件系统 |
|
6 |
打开quota |
7 |
装载声卡模块 |
8 |
设置系统时钟 |
9 |
等等。 |
你在/etc/inittab文件中可以设置运行级别
/etc/rc.d/rc 则根据其参数指定的运行模式来执行相应目录下的脚本。凡是以Kxx开头的
,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx
从小到大来执行。例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用
/etc/rc.d/rc3.d/下的脚本。
值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中
的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的
action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束