rc.local和init.d
时间: 2023-05-08 11:57:39 浏览: 347
rc.local和init.d都是Linux操作系统下的服务启动脚本,用于控制系统开机后自动启动哪些服务。
rc.local是一个简单的启动脚本,在系统启动的最后一步运行。任何添加到rc.local中的命令都会在所有其他服务和系统配置启动之后执行。这是因为rc.local是在所有其他配置文件执行后才被执行的,因此在其中添加服务时要注意脚本的先后顺序。
另一方面,init.d是一个更有效的服务启动脚本目录。在这个目录下,每个服务都有自己的脚本文件,分别用来启动、停止、重新启动和检查服务的状态。这些脚本都在系统启动时按照指定的顺序执行。同时init.d还提供了几个基本的服务管理命令,如service和chkconfig。
总的来说,rc.local是用于启动简单的、不需要大量系统资源的服务和脚本,而init.d则更适用于管理大型服务和需要在特定条件下启动或停止的服务。
相关问题
update-rc.d: error: unable to read /etc/init.d/rc.local
当您遇到 `update-rc.d: error: unable to read /etc/init.d/rc.local` 这样的错误时,这通常意味着在尝试更新系统启动脚本 (`rc.local`) 的运行级别管理时出现了问题。`rc.local` 文件通常包含系统启动时需要运行的一些自定义命令或初始化步骤。
可能的原因包括:
1. **权限问题**:文件可能没有适当的读取权限。检查权限设置,确保 `root` 或具有相应权限的用户可以访问该文件。
2. **文件不存在或损坏**:如果 `/etc/init.d/rc.local` 文件已删除、移动或严重损坏,`update-rc.d` 将无法读取。
3. **文件格式问题**:`rc.local` 文件的内容可能不符合预期格式,导致 `update-rc.d` 无法处理。
4. **系统升级或更新后遗留问题**:有时系统升级或更新会改变文件路径或配置,导致旧的脚本引用失效。
解决方法可以尝试:
1. **修复权限**:使用 `sudo chmod u+x /etc/init.d/rc.local` 命令恢复执行权限。
2. **备份并重置**:备份原始文件,然后用 `cp /etc/init.d/Skeleton/rc.local /etc/init.d/rc.local` 创建一个新的,或者直接从 Skeleton 文件中复制内容。
3. **检查文件内容**:确认文件内容是否需要,如果不需要的脚本,可以从 `/etc/rc.local.disabled` 或 `/etc/default/rc.local` 中移除或禁用。
4. **更新系统管理工具**:确保 `update-rc.d` 和其依赖包是最新的,使用 `apt-get update` 和 `apt-get upgrade` 进行更新。
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
以下是将/usr/local/keepalived/etc/rc.d/init.d/keepalived复制到/etc/init.d/的命令:
```shell
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
```
这个命令将会把/usr/local/keepalived/etc/rc.d/init.d/keepalived文件复制到/etc/init.d/目录下。
阅读全文