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个停止。
下面命令中,在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服务,编写的脚本同样可以用这个命令设为开机自动运行。具体参见《简单高效的防火墙脚本》一文。