热爱开源,热爱linux
分类: LINUX
2010-12-20 20:08:46
Ubuntu 10.04 中对于运行级别(run level )的配置和一般的Linux 系统不同。一般的Linux 在/etc/inittab 中配置运行级别和启动项。
而在Ubuntu10.04 中,并没有使用inittab 文件来配置系统启动项和运行级别。所有类似的功能是通过 来实现的。要了解Ubuntu 中的启动项和运行级别的配置,首先需要了解其启动过程。在Ubuntu 的启动过程中,顺序依次为:内核启动init->init 导入/etc/init/rc-sysinit.conf-> 运行/etc/init.d/rc-> 运行/etc/rc[x].d 脚本。
首先来看看/etc/init/rc-sysinit.conf 。在ubuntu10.04 中,/etc/init/rc-sysinit.conf 类似于inittab 文件,默认运行级别是在该文件中配置的(通过设置env DEFAULT_RUNLEVEL )。值得注意的是,在这个文件中有一行代码:if [ -r /etc/inittab ] ,说明在ubuntu 中,用户依旧可以按照自己的习惯,通过inittab 来配置启动服务项和运行级别。
然后来看看/etc/init.d/rc 文件。该文件为系统做了一些初始化的设置。包括PATH 、umask 等一系列操作。Rc 文件中有这么一些命令
...for s in /etc/rc$runlevel.d/K* ...
...for s in /etc/rc$runlevel.d/S* ...
这说明rc 文件会根据运行级别去执行rc[x].d 中的脚本。
设置好运行级别x 后,可以在对应的/etc/rc[x].d 文件夹中查看对应的运行级别需要启动的服务的符号链接。该文件夹中的大多数文件都以SxxxName 命名的,其中S 表示START ,xxx 表示启动的顺序,Name 表示需要启动的服务。因此,如果需要取消某个服务,只需要将对应启动项的S 改成KSTOP 参数来调用),然后运行update-rc.d 即可。很多rc[x].d 中都有 S99rc.local -> ../init.d/rc.local 这一项,因此可以在rc.local 中配置自定义的启动项。要注意的是,rc.local 中只要有一条语句出错,执行就会退出,造成rc.local 未执行的假象,所以务必保证rc.local 文件中命令的正确性。 (以
Inittab 文件以identifier : run_level : action : process 的结构启动项。各字段的含义分别为:
1
、设置指定启动顺序、指定运行级别的启动项:
update-rc.d
<service
> start
<order
>
<runlevels
>
2
、设置在指定运行级中,按指定顺序停止:
update-rc.d
<service
> stop
<order
>
<runlevels
>
3
、从所有的运行级别中删除指定的启动项:
update-rc.d
-f
<script-name
>
remove
下面我在我的机子上实验一下加载一个自启动脚本,脚本如下:
|
restart_log.$DATE 里面。
这里将我记载脚本的过程记录一下
首先将上面的脚本backup_restart.sh存到/etc/init.d目录下,并将文件权限使用下列命令改为755
|
|
restart_log.20101221文件,里面记录了你当天重启信息