update-rc.d

1、概述

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

/etc/init.d/apache2   start

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


2、格式

udpate-rc.d [参数] <service> remove

udpate-rc.d [参数] <service> start|stop <order><level>

参数说明:

-f:强制删除符号链接

<service>服务名称


action:动作类型,可以取值:

defaults:默认启动项目

remove:在所有级别中删除指定启动服务

start:在指定级别中启用服务

stop:在指定级别中停止服务


order:指定启动和停止的顺序,默认启动顺序是20,停止顺序是80

level:指定操作的服务级别0~6


3、用法

3.1、删除一个服务

如果你想手动的完全禁用Apache2服务,你需要删除其中的所有在/etc/rcX.d中的单一链路。但是如果使用update-rc.d,则非常简单:

update-rc.d -f apache2 remove


参数”-f“是强制删除符号链接,即使/etc/init.d/apache2仍然存在。  

注意:这个命令仅仅禁止该服务,直到该服务被升级。如果你想在服务升级后仍然保持被禁用。应该执行如下的命令:

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


3.2、增加一个服务

如果你想重新添加这个服务并让它开机自动执行,你需要执行以下命令: 

update-rc.d apache2 defaults 


并且可以指定该服务的启动顺序为第90个启动: 

update-rc.d apache2 defaults 90 


更详细的控制start与kill顺序,其中前面的20表示第20个启动,后面的80表示第80个停止。 

update-rc.d apache2 defaults 20 80 


下面命令中,在2/3/4/5级别中以第20位启动,在0/1/6级别中以第80位停止

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

上面命令中前后两个点(.)等效于defaults


update-rc.d命令不仅适用Linux服务,编写的脚本同样可以用这个命令设为开机自动运行。具体参见《简单高效的防火墙脚本》一文。


阅读 80