Linux 命令速查
系统管理 man update-rc.d

update-rc.d

管理 SysV init 服务启动链接的工具

返回

补充说明

update-rc.d 是 Debian 系发行版(Debian、Ubuntu 等)中用于维护 /etc/rc?.d/ 目录下符号链接的脚本,属于 sysv-rc 包。它根据 /etc/init.d/ 中的 SysV 脚本名,在对应运行级别目录中创建 S(启动)或 K(停止)开头的链接。

在 systemd 系统上,该命令仍可用于兼容旧式 init 脚本,但服务是否随开机启动实际由 systemd 单元决定,因此应优先使用 systemctl enable 与 systemctl disable。update-rc.d 只修改链接,不启动或停止服务本身。

执行前应确认 /etc/init.d/<name> 存在且可执行。remove 只删除 rc 目录中的链接,不会删除 init 脚本。批量改动前可以先用 -n 预览将要执行的动作。

语法

update-rc.d [-n] [-f] name remove
update-rc.d name defaults [NN | SS KK]
update-rc.d name start|stop NN runlevel [runlevel] ... .

选项

  • -n:只显示将要执行的操作,不实际修改文件系统。
  • -f:即使 /etc/init.d/name 不存在,也强制删除链接。
  • -v:输出详细执行过程。
  • defaults:依据脚本头部的 Default-Start、Default-Stop 创建链接;未声明时通常为 2 3 4 5 启动、0 1 6 停止。
  • start NN runlevel .:在指定运行级别以序号 NN 创建启动链接。
  • stop NN runlevel .:在指定运行级别创建停止链接。

实例

# 按脚本声明的默认运行级别启用服务
sudo update-rc.d nginx defaults

# 指定启动优先级 20,在 2/3/4/5 级别启动,在 0/1/6 级别停止
sudo update-rc.d nginx start 20 2 3 4 5 . stop 20 0 1 6 .

# 删除某服务的所有 rc?.d 链接,但保留 /etc/init.d 脚本
sudo update-rc.d nginx remove

# 先预览删除操作,不实际执行
sudo update-rc.d -n nginx remove

# 查看生成的链接
ls -l /etc/rc2.d/ | grep nginx

参考链接