update-rc.d使用

本文深入探讨了在Linux环境下利用/etc/init.d目录下的脚本进行服务的启动、禁用与重启的方法。特别介绍了使用update-rc.d命令替代手动删除符号链接的高效方式,以及如何通过该命令灵活控制服务的启动顺序和运行级别。

在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、删除一个服务

 

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

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服务,编写的脚本同样可以用这个命令设为开机自动运行

<think>好的,用户的问题是关于如何使用update-rc.d命令卸载系统启动脚本。首先,我需要回顾一下相关的知识。根据引用[1]和引用[2],update-rc.d命令可以用来添加或删除启动脚本。特别是引用[2]提到了卸载的方法:进入/etc/init.d目录,然后执行sudo update-rc.d -f 脚本名称 remove。这里的-f参数是强制删除,即使脚本还存在。 接下来,我需要确认步骤是否正确。用户需要卸载的脚本可能位于/etc/init.d下,所以第一步是找到该脚本的确切名称。然后使用remove参数来卸载。另外,引用[2]的例子中使用了svnd.sh作为脚本名,所以用户需要替换成自己的脚本名称。 还要注意权限问题,用户可能需要使用sudo来获得足够的权限执行命令。此外,引用[4]提到启动脚本实际上是通过在rcX.d目录下的符号链接来管理的,卸载操作应该会删除这些链接,但不会删除原始的脚本文件。因此,用户如果想彻底删除,可能需要手动删除/etc/init.d中的脚本文件。 另外,引用[3]提到启动脚本需要处理特定的行为,如start、stop等。但卸载过程不需要这些,只需执行remove命令即可。最后,总结步骤,确保用户能清晰理解如何操作,并提醒注意事项,比如确认脚本名称和备份。</think>### 如何用 `update-rc.d` 卸载系统启动脚本? #### 操作步骤: 1. **确认脚本名称** 确保需卸载的脚本名称正确,例如脚本名为 `xx.sh`,位于 `/etc/init.d/` 目录下。 2. **执行卸载命令** 在终端输入以下命令(需管理员权限): ```bash sudo update-rc.d -f xx.sh remove ``` - `-f`:强制删除符号链接,即使脚本文件仍存在[^1][^2]。 - `remove`:移除所有与该脚本关联的启动级别链接[^2]。 3. **验证结果** 检查 `/etc/rcX.d/`(如 `rc0.d`、`rc1.d` 等目录)中是否还存在以 `S` 或 `K` 开头的链接文件(例如 `S95xx.sh`),若已无相关链接,则卸载成功[^4]。 #### 注意事项: - **脚本文件保留**:此操作仅删除符号链接,不会删除 `/etc/init.d/` 中的原始脚本文件。如需完全删除,需手动执行: ```bash sudo rm /etc/init.d/xx.sh ``` - **依赖顺序号**:若脚本在启动时有依赖顺序(如引用中的数字 `95`),卸载后相关顺序配置会一并清除[^2]。 - **兼容性**:适用于基于 SysV init 的系统(如 Debian/Ubuntu 旧版本),不适用于使用 systemd 的新系统[^4]。 #### 示例场景: ```bash # 假设需卸载名为 "svnd.sh" 的脚本 cd /etc/init.d sudo update-rc.d -f svnd.sh remove ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值