原有的System V init启动过程的缺点是,它基于包含了大量启动脚本的runlevel目录。而Upstart则是事件驱动型的,因此,它只包含按需启动的脚本,这将使 启动过程变得更加迅速。经过良好调优并使用Upstart启动方式的Linux服务器的启动速度要明显快于原有的使用System V init的系统。
为了使Upstart更容易理解,它仍然使用了一个init进程。所以,你仍然可以看到/ sbin / init,它是所有服务的根进程。但是,如果你看一下文件/ etc / inittab,你会发现一切都变了。
理解从init到Upstart的转变
有一个好消息,那就是RHEL 6对启动过程的改变很少。你还是可以处理那些在目录/ etc / init.d中的包含服务脚本的服务,所以runlevel的概念一直存在。因此,在使用yum增加一个服务后,照样可以像以前那样使用 chkconfig命令激活它。此外,仍然可以用service命令来启动它。
但如果你要查找以前应用在/ etc / inittab中的设定,你会发现很多都已经变了。唯一没变的是对服务器默认运行级别(runlevel)设定的这一行:
id:5:initdefault:
所有先前由/ etc / inittab中处理的条目,现在都在目录/ etc / init中以单个文件的形式存在(不要与目录/ etc / init.d混淆,/ etc / init.d中包含的是服务脚本)。以下是一个你要使用的脚本的简短列表:
/etc/init/rcS.conf |
通过启动大部分的基本服务来对系统进行初始化的设定 |
/etc/init/rc.conf |
对启动各自的运行级别(runlevel)的设定 |
/etc/init/control-alt-delete.conf |
定义当用户按“control-alt-delete”三个键时的系统行为 |
/etc/init/tty.conf |
定义了系统处理终端登录的方式 |
除了这些通用的文件,在文件/ etc / sysconfig / init中还有一些额外的配置。在这里,定义了一些参数来决定启动信息的格式。除了那些不很重要的设置,有三行我们需要注意:
AUTOSWAP=no
ACTIVE_CONSOLES=/dev/tty[1-6]
SINGLE=/sbin/sushell
其中,第一行的值你可以设定为Yes,这样可以让你的系统能够自动检测交换分区。使用此选项意味着你再也不必在/ etc / fstab中挂载交换分区了。在ACTIVE_CONSOLES这一行决定了虚拟控制台的创建。在大多数情况下,tty[1-6]工作得很好,同时这个选 项也允许您分配更多或者更少的虚拟控制台。但是要注意,不要使用tty [1-8],因为tty7是专门为图形界面预留的。
最后很重要的一行是single= / sbin/ sushell。这一行可以有两个参数:/ sbin/ sushell(系统默认的参数),它会在启动单用户模式时将你带入一个root的 shell,参数/ sbin / sulogin会在单用户模式启动之前弹出一个登录提示,你必须输入root账户的密码才能继续下去。
RHEL 6通过将System V替换为Upstart加快了其启动速度。采用了这项新服务,红帽仍然可以向下兼容地保持以前的管理方式,这就意味着,作为管理员,你仍可以使用原来的方 式来管理服务 - 也几乎就是这样 - 只要在文件/ etc / inittab中做一些修改就可以了。