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

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 37 ::
收藏到网摘: 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继续下一步。