Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统启动项的脚本。这些脚本的链接位于/etc/rcN.d/目录,对 应脚本位于/etc/init.d/目录。在了解update-rc.d命令之前,你需要知道的是有关Linux 系统主要启动步骤,以及Ubuntu中运行级别的知识。

  一、Linux 系统主要启动步骤

  读取 MBR 的信息,启动 Boot Manager。

  加载系统内核,启动 init 进程, init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。

  init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别。通常情况下 /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。

  根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg,Xwindow 为 Linux 下的图形用户界面系统。

  启动登录管理器,等待用户登录。

  二、运行级别

Ubuntu中的运行级别
   0(关闭系统)
   1(单用户模式,只允许root用户对系统进行维护。)
   2 到 5(多用户模式,其中3为字符界面,5为图形界面。)
   6(重启系统)
   切换运行级别
   init [0123456Ss]
   例如:init 0 命令关机; init 6 命令重新启动
   启动项管理工具
   sudo install sysv-rc-conf //或者使用带gui的工具bum
   sudo sysv-rc-conf
   三、update-rc.d命令详解
   从所有的运行级别中删除指定启动项
   update-rc.d -f remove
   按指定顺序、在指定运行级别中启动或关闭
   update-rc.d start|stop
   实例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .
   解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这3个运行级别中,第20个关闭apachectl。这是合并起来的写法,注意它有2个点号,效果等于下面方法:
   update-rc.d apachectl defaults
   A启动后B才能启动,B关闭后A才关闭
   update-rc.d A defaults 80 20
   update-rc.d B defaults 90 10
   启动和关闭顺序为90,级别默认
   update-rc.d defaults 90
 --------------------------------------------------------------

在Linux系统下,一个Services的启动、停止以及重启通常是通过/etc/init.d目录下的脚本来控制的。然而,在启动或改变运行级别时, 是在/etc/rcX.d中来搜索脚本。其中X是运行级别的number。本文将解释如何启动、关闭和修改服务的运行。当你在Debian下安装一个新的 服务,比如Apache2,安装完成后,默认情况下它会启动,并在下一次重启后自动启动。但是如果你不是一直需要这个服务,只在需要的时候启用它,你可以 禁用它。直到你需要使用的时候,执行如下指令:
/etc/init.d/apache2 start

要实现这个目的,你需要先在/etc/rcX.d目录中删除所有apache2的符号链接,但这个方法操作麻烦,且效率低下。因此,我们建议你使用update-rc.d命令来实现这个功能。

1、删除一个服务


update-rc.d -f apache2 remove


参数-f是强制删除符号链接,即使/etc/init.d/apache2仍然存在。 Note:这个命令仅仅禁止该服务,直到该服务被升级。如果你想在服务升级后仍然保持被禁用。应该执行如下的命令:

update-rc.d apache2 stop 80 0 1 2 3 4 5 6  
.
 
 
 2、增加一个服务

 
update-rc.d apache2 defaults 

并且可以指定该服务的启动顺序: 

update-rc.d apache2 defaults 90 

还可以更详细的控制start与kill顺序: 

update-rc.d apache2 defaults 20 80 

其中前面的20是start时的运行顺序级别,80为kill时的级别。也可以写成: 

update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .



其中0~6为运行级别。 update-rc.d命令不仅适用Linux服务,编写的脚本同样可以用这个命令设为开机自动运行