当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 剖析Linux系统启动过程(4)

Unix/Linux
linux php扩展安装方法
Linux上架设支持JSP+PHP的Web服务器
FreeBSD WEB服务器架设笔记
Linux下Web服务器架设攻略
Apache配置技巧
在 Linux 上安装 PostgreSQL
文件属性控制命令chmod
解决安装Domino for Linux时配置的Web服务器无法启动的问题
在Linux下配置和安装Domino 服务器的问题
Linux下配置和安装Domino 服务器 2
Linux下配置和安装Domino 服务器 3
Linux编译内核
I810 Graphics LINUX Driver的安装
在Linux下如何使用软盘、光盘等分区
建立并安装一个定制的内核
中小型企业的Sendmail邮件服务器应用实例
Linux下 Sendmail服务器 转发功能的讲解
linux下文件解压
配置Sendmail服务器以防治垃圾邮件
配置Sendmail服务器以防治垃圾邮件 2

Unix/Linux 中的 剖析Linux系统启动过程(4)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 67 ::
收藏到网摘: n/a

第三部分:系统初始化
  在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、Samba和NetWare网络文件系统  network:激活已配置网络接口的脚本程序  nfs:打开NFS服务  portmap:RPC portmap管理器,它管理基于RPC服务的连接  sendmail:邮件服务器sendmail  smb:Samba文件共享/打印服务  syslog:一个让系统引导时起动syslog和klogd系统日志守候进程的脚本  xfs:X Window字型服务器,为本地和远程X服务器提供字型集  Xinetd:支持多种网络服务的核心守护进程,可以管理wuftp、sshd、telnet等服务  这些守护进程也启动完成了,rc程序也就执行完了,然后又将返回init继续下一步。