剖析Linux系统启动过程
,6为重启;S和s意义相同,表示单用户模式,且无需inittab文件,因此也不在inittab中出现,实际上,进入单用户模式时,init直接在控制台(/dev/console)上运行/sbin/sulogin.在一般的系统实现中,都使用了2、3、4、5几个级别,在 Redhat系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示XDM图形登录方式. 7-9级别也是可以使用的,传统的Unix系统没有定义这几个级别.runlevel可以是并列的多个值,以匹配多个运行级别,对大多数action来说,仅当runlevel与当前运行级别匹配成功才会执行.
3. action action是描述其后的process的运行方式的.action可取的值包括:initdefault、sysinit、boot、bootwait等: initdefault是一个特殊的action值,用于标识缺省的启动级别;当init由核心激活以后,它将读取inittab中的 initdefault项,取得其中的runlevel,并作为当前的运行级别.如果没有inittab文件,或者其中没有initdefault 项,init将在控制台上请求输入runlevel. sysinit、boot、bootwait等action将在系统启动时无条件运行,而忽略其中的runlevel. 其余的action(不含initdefault)都与某个runlevel相关.各个action的定义在inittab的man手册中有详细的描述. 4. process process为具体的执行程序.程序后面可以带参数. 第三部分:系统初始化 在init的配置文件中有这么一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要运行的重要脚本.它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务. rc.sysinit约有850多行,但是每个单一的功能还是比较简单,带有注释,建议有兴趣的用户可以自行阅读自己机器上的该文件,以了解系统初始化所详细情况.此文件较长,不在本文中列出来,也不做具体的介绍.
当rc.sysinit程序执行完毕后,将返回init继续下一步.
第四部分:启动对应运行级别的守护进程 在rc.sysinit执行后,将返回init继续其它的动作,通常接下来会执行到/etc/rc.d/rc程序.以运行级别3为例,init将执行配置文件inittab中的以下这行: l5:5:wait:/etc/rc.d/rc 5 这一行表示以5为参数运行/etc/rc.d/rc,/etc/rc.d/rc是一个Shell脚本,它接受5作为参数,去执行/etc/rc.d /rc5.d/目录下的所有的rc启动脚本,/etc/rc.d/rc5.d/目录中的这些启动脚本实际上都是一些链接文件,而不是真正的rc启动脚本,真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下.而这些rc启动脚本有着类似的用法,它们一般能接受start、stop、 restart、status等参数. /etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的链接文件,对于以以S开头的启动脚本,将以start参数来运行.而如果发现存在相应的脚本也存在K打头的链接,已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将以stop为参数停止这些已经启动了的守护进程,然后再重新运行.这样做是为了保证是当init改变运行级别时,所有相关的守护进程都将重启. 至于在每个运行级中将运行哪些守护进程,用户可以通过chkconfig或setup中的"System Services"来自行设定.常见的守护进程有: amd:自动安装NFS守护进程 apmd:高级电源管理守护进程 arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 autofs:自动安装管理进程automount,与NFS相关,依赖于NIS crond:Linux下的计划任务的守护进程 named:DNS服务器 netfs:安装NFS、Samb |
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |