Linux启动过程详解:rc启动脚本与守护进程

5星 · 超过95%的资源 需积分: 12 7 下载量 87 浏览量 更新于2024-07-31 1 收藏 90KB DOC 举报
"讲解Linux启动脚本的执行顺序及常见守护进程" Linux系统的启动过程是一个复杂且有序的过程,主要由多个启动脚本和守护进程组成。在Linux系统启动时,会按照特定的顺序执行一系列的脚本来初始化系统环境,并启动必要的服务。本文将详细阐述这个过程。 首先,当系统启动进入运行级别3时,执行的关键脚本之一是`/etc/rc.sysinit`,它负责基本的系统初始化,如设置环境变量、检测硬件、挂载文件系统等。接着,控制权交回给`init`进程,根据`/etc/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/`目录下的所有脚本,这些脚本通常是链接文件,指向`/etc/rc.d/init.d/`目录下的实际启动脚本。以`S`开头的脚本会被启动(使用`start`参数),而如果存在对应的`K`开头的脚本并且服务正在运行,那么会先停止该服务(使用`stop`参数)再重新启动,确保在切换运行级别时服务的正确重启。 在运行级别3中,用户可以通过`chkconfig`或`setup`工具来管理启动的服务,即守护进程。一些常见的守护进程包括: 1. `amd`:自动安装NFS守护进程,用于网络文件系统。 2. `apmd`:高级电源管理守护进程,用于节能。 3. `arpwatch`:监控局域网的以太网/IP地址对,用于网络安全。 4. `autofs`:自动挂载管理器,与NFS和NIS相关。 5. `crond`:定时任务守护进程,执行cron计划的任务。 6. `named`:域名服务器,提供DNS服务。 7. `netfs`:处理NFS、Samba和NetWare网络文件系统的挂载。 8. `network`:启动和配置网络接口。 9. `nfs`:开启NFS服务,允许文件共享。 10. `portmap`:远程过程调用(RPC)端口映射器,管理基于RPC的服务。 11. `sendmail`:电子邮件服务器,处理邮件发送。 12. `smb`:Samba服务,提供文件和打印机共享。 13. `syslog`:启动syslog和klogd系统日志守护进程。 14. `xfs`:X Window字体服务器,为X服务器提供字体支持。 15. `Xinetd`:超级服务器,管理多种网络服务,如wuftp、sshd、telnet等。 当所有这些守护进程启动完成后,`rc`脚本执行完毕,控制权再次返回给`init`,准备进行下一步,如建立终端供用户登录。 在另一部分提及的是PPCBoot启动流程,这是针对ARM架构的嵌入式设备,如S3C2410处理器的启动流程。PPCBoot是一个二进制引导加载程序,它位于闪存的开始位置。CPU上电后,会从0地址开始执行代码,这部分代码位于`cpu/arm920t/start.s`中。`ppcboot.lds`是链接脚本,定义了代码段、数据段等的内存布局,确定了程序的入口点 `_start` 和各个部分的位置。 Linux启动涉及多个层面,从硬件初始化到软件服务的启动,每个步骤都有其特定的目的和作用,确保系统能够正确、高效地运行。了解这些启动脚本和守护进程的工作原理,对于系统管理和故障排查至关重要。