通过/etc/inittab文件进行初始化
init的工作是根据/etc/inittab来执行相应的脚本,进行系统初始化,如设置键盘、字体、装载模块,设置网络等。
1./etc/rc.d/rc.sysinit
在init的配置文件中有如下一行:
si::sysinit:/etc/rc.d/rc.sysinit |
rc.sysinit是由init执行的第一个脚本,它主要完成一些系统初始化的工作。rc.sysinit是每一个运行级别都要首先运行的重要脚本,它主要完成的工作有:激活交换分区、检查磁盘、加载硬件模块以及其他一些需要优先执行的任务。/etc/rc.d/rc.sysinit主要完成各个运行模式中相同的初始化工作,包括:
l 设置初始的$PATH变量;
l 配置网络;
l 为虚拟内存启动交换;
l 设置系统的主机名;
l 检查root文件系统,以进行必要的修复;
l 检查root文件系统的配额;
l 为root文件系统打开用户和组的配额;
l 以读/写的方式重新装载root文件系统;
l 清除被装载的文件系统表/etc/mtab;
l 把root文件系统输入到mtab;
l 使系统为装入模块做准备;
l 查找模块的相关文件;
l 检查文件系统,以进行必要的修复;
l 加载所有其他文件系统;
l 清除/etc/mtab、/etc/fastboot和/etc/nologin;
l 删除UUCP的lock文件;
l 删除过时的子系统文件;
l 删除过时的pid文件;
l 设置系统时钟;
l 激活交换分区;
l 初始化串行端口;
l 装入模块。
2./etc/rc.d/rcX.d/[KS]
在rc.sysinit执行后,将返回init,继续执行/etc/rc.d/rc程序。以运行级别5为例,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来自行设定。常见的守护进程如下。
l amd:自动安装NFS守护进程。
l apmd:高级电源管理守护进程。
l arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对应的数据库。
l autofs:自动安装管理进程automount,与NFS相关,依赖于NIS。
l crond:Linux系统下计划任务的守护进程。
l named:DNS服务器。
l netfs:安装NFS、Samba和NetWare网络文件系统。
l network:激活已配置网络接口的脚本程序。
l nfs:打开NFS服务。
l portmap:RPC portmap管理器,它管理基于RPC服务的连接。
l sendmail:邮件服务器sendmail。
l smb:Samba文件共享/打印服务。
l syslog:一个让系统引导时启动syslog和klogd系统日志守候进程的脚本。
l xfs:X Window字型服务器,为本地和远程X服务器提供字型集。
l Xinetd:支持多种网络服务的核心守护进程,可以管理wuftp、sshd、telnet等 服务。
这些守护进程启动完毕,rc程序也就执行完了,然后又将返回init继续下一步。
3.执行/etc/ec.d/rc.local
RHEL 4中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后、登录之前执行的命令。在维护Linux系统时一般会遇到需要系统管理员对开机或者关机命令脚本进行修改的情况。如果所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简单地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最后一步被执行的。