自启动脚本/etc/rc.local文件

本文介绍如何通过编辑 /etc/rc.local 文件实现系统自启动服务的配置。在 Linux 系统中,/etc 目录下的 rc 文件是系统初始化的重要组成部分,而 rc.local 被用于添加自定义的启动脚本。

/etc目录下

rc文件均是/rc.d目录中的链接,需要添加自启,只要编辑/etc/rc.local即可

### 没有 `/etc/rc.local` 和 `/etc/rc3.d/` 的原因 - **系统精简**:嵌入式系统资源有限,为减少资源占用和系统开销,开发者会裁剪不必要的文件和功能。`/etc/rc.local` 和 `/etc/rc3.d/` 通常用于传统的 SysV 初始化系统,若系统采用其他初始化机制,如 `systemd` 或 `busybox` 的简化初始化,这些文件可能会被移除。 - **使用不同的初始化机制**:一些嵌入式系统使用 `systemd` 作为初始化系统,它采用了新的启动方式和配置文件,不再依赖 `/etc/rc.local` 和 `/etc/rc3.d/` 来管理服务启动。还有一些系统使用 `busybox` 的简化初始化,通过 `/etc/inittab` 或其他配置文件来完成系统初始化,也不需要这些文件。 - **自定义文件系统**:开发者可能会根据项目需求自定义文件系统,在构建过程中未包含 `/etc/rc.local` 和 `/etc/rc3.d/` 相关文件。 ### 解决办法 #### 若系统使用 `systemd` 可以创建一个 `systemd` 服务单元文件来实现开机自启。例如,创建一个名为 `myapp.service` 的文件,内容如下: ```ini [Unit] Description=My Application After=network.target [Service] ExecStart=/path/to/your/application Restart=always [Install] WantedBy=multi-user.target ``` 将该文件保存到 `/etc/systemd/system/` 目录下,然后执行以下命令: ```bash systemctl daemon-reload systemctl enable myapp.service ``` #### 若系统使用 `busybox` 或传统的 SysV 初始化 - **添加 `/etc/rc.local`**:手动创建 `/etc/rc.local` 文件,并添加执行权限: ```bash touch /etc/rc.local chmod +x /etc/rc.local ``` 在 `/etc/rc.local` 文件中添加需要开机自启的命令,例如: ```bash #!/bin/sh /path/to/your/application & exit 0 ``` 同时,确保在系统初始化过程中调用 `/etc/rc.local`。若使用 `busybox`,可以在 `/etc/inittab` 中添加一行: ```plaintext ::sysinit:/etc/rc.local ``` - **添加 `/etc/rc3.d/`**:手动创建 `/etc/rc3.d/` 目录,并创建相应的启动脚本软链接。例如,有一个启动脚本 `/etc/init.d/myapp`,可以执行以下命令创建软链接: ```bash mkdir -p /etc/rc3.d ln -s /etc/init.d/myapp /etc/rc3.d/S90myapp ``` 其中,`S90` 表示启动顺序,数字越大启动越晚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值