阅读:2314回复:0
Linux 系统启动流程
Fedora/Linux 启动时先载入内核 (Kernel),随后启动名为 init 的程序,再由 init 执行任务并调用其他程序。
在了解 Linux 的启动流程之前,先来认识认识运行级别 (Runlevels)。不同的运行级别有不同的用途,因此启用的服务也不一样。 Linux 包含七个默认级别
系统的默认级别设置保存在 /etc/inittab 文档中 id:5:initdefault: 上面配置说明系统的默认运行级别是 5,要更改默认级别,只需使用 root 权限更改其中的数字,然后重启就行了。 注意:不要将默认运行级别设置成 0 或 6,这会导致系统一启动便关机或不断重启,常用的运行级别是 3 和 5。 启动流程 kernel 通过执行 /etc/rc.d/rc.sysinit 脚本激活 init 进程,它会完成“配置网络环境”、“挂载分区”、“设置计算机名称”等等一系列工作。然后 init 通过查看 /etc/inittab 文档,取得 initdefault 条目设置的运行级别。再依照运行级别调用 /etc/rc.d 目录下的相关脚本。 /etc/rc.d 目录下存在下列目录,除 init.d 外,每个目录都对应一个运行级别,如运行级别为 5 时,则执行 rc5.d 目录下的脚本 init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc[0-6].d 目录下的文档都是以 K 或者 S 开头,K 表示 Kill,S 表示 Start,可以使用 "ls -la /etc/rc.d/rc5.d" 命令查看,结果类似于以下输出 [lugir@hope ~]$ ls -la /etc/rc.d/rc5.d …… lrwxrwxrwx. …… K01smartd -> ../init.d/smartd lrwxrwxrwx. …… K01smolt -> ../init.d/smolt lrwxrwxrwx. …… K10psacct -> ../init.d/psacct …… lrwxrwxrwx. …… K95firstboot -> ../init.d/firstboot lrwxrwxrwx. …… S00microcode_ctl -> ../init.d/microcode_ctl lrwxrwxrwx. …… S02lvm2-monitor -> ../init.d/lvm2-monitor lrwxrwxrwx. …… S06cpuspeed -> ../init.d/cpuspeed …… 不难看出,rc[0-6].d 目录下的文件都是指向 init.d 目录下的链接文件。在启动时,init 会停止以 K 开头的进程,再启动以 S 开头的进程,有相同开头的服务按照数字大小的顺序依次执行,如 K01 > K10 > S01 > S06 待指定运行级别下的脚本全都执行完成之后,系统启动就完成了。 |
|||||||||||||||||