futurezone 2011-01-25
Arch Linux 的启动非常简单,类似于 *BSD。运行的第一个启动脚本是 /etc/rc.sysinit,然后是 /etc/rc.multi(正常启动),最后是 /etc/rc.local。当启动的是 runlevel 1(单用户模式)时,/etc/rc.single 将会代替 /etc/rc.multi 运行。在 /etc/rc?.d/ 目录下,你将不会找到系列没完没了的符号链接来为所有可能的 runlevel(运行级别)定义启动序列。由于这样,Arch 仅提供了三个 runlevels(运行级别),如果你考虑要用 runlevel 5 来启用 X 的话。启动脚本使用的是文件 /etc/rc.conf 内的变量和定义以及 /etc/rc.d/functions 脚本里定义的一套一般函数集。如果你要写自己的后台程序文件,你应该看看这个文件以及现有的脚本。
启动脚本纵览
/etc/rc.sysinit
/etc/rc.single
/etc/rc.multi
/etc/rc.local
/etc/rc.shutdown
/etc/rc.d/*
/etc/rc.sysinit
主要的系统启动脚本。它引导着一些重要的东西如挂载文件系统、运行 devfsd、激活交换分区、加载模块、设置本地化参数等等。或许你永远也不需要编辑这个文件!
/etc/rc.single
单用户启动。正常启动下不使用。如果系统启用了单用户模式,例如启动或正常的多用户模式下使用了 init 1 命令,除syslogd,klogd 和 devfsd外,这个脚本确保了没有后台程序在运行。在确保远程用户不能做出一些可能导致数据丢失或损坏的情况下,如果需要对系统做出任何的修改,单用户模式是很有用的。
/etc/rc.multi
多用户启动脚本。它会在 /etc/rc.local 之后启动所有在 DAEMONS 队列中预设的后台程序(/etc/rc.conf 中设定)。你应该不需要去编辑它。
/etc/rc.local
本地多用户启动脚本。这是放置你希望系统在启动过程的最后来运行的命令的好地方,它也是最后以及唯一一个你应该修改(如果有需要)的脚本,你有完全的自主权为这个脚本加入些什么。
大多数普通的系统设置任务,例如加载模块,更改控制台字体或是设置设备,通常都有它们专属的位置。为避免混乱,rc.local 的加入不应该像你的 /etc/profile.d/ 或其它配置文件那样的随意。
/etc/rc.shutdown
系统关闭脚本。它停止后台程序,缷载文件系统,撤消交换分区等,别碰它。
/etc/rc.d/*
这个目录包含的后台程序脚本引用自 rc.conf 的 DAEMONS 队列。可以在启动之外被唤起,你可以在系统运行的时候使用这些脚本来管理服务。例如如下的命令:
# /etc/rc.d/postfix stop
将会停止 postfix。当然,只有在相应的软件包安装后(如例中的 postfix)脚本才会存在。基系统安装后你不会有很多的脚本,但其余所有相应的后台脚本一定是在这里结束的。除符号链接的争论外,这个目录与其它发行版的 /etc/rc3.d/ 或 /etc/init.d/ 非常的相似。