2022-02-28 23:07:00 +08:00
|
|
|
|
Ubuntu20.04 设置开机自启
|
|
|
|
|
========================
|
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [blog.csdn.net](https://blog.csdn.net/qq_43685040/article/details/111574332)
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
第一步
|
|
|
|
|
---
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
执行 **ls /lib/systemd/system** 你可以看到有很多启动脚本,其中就有我们需要的 **rc-local.service**
|
|
|
|
|
![](assets/20201223103738935.png)
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
第二步
|
|
|
|
|
---
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
打开 **rc-local.service** 脚本内容,内容如下:
|
|
|
|
|
|
|
|
|
|
![](assets/20201223103800889.png)
|
2022-02-28 23:07:00 +08:00
|
|
|
|
一般正常的启动文件主要分成三部分
|
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
* **[Unit]** 段: 启动顺序与依赖关系
|
|
|
|
|
* **[Service]** 段: 启动行为, 如何启动,启动类型
|
|
|
|
|
* **[Install]** 段: 定义如何安装这个配置文件,即怎样做到开机启动
|
|
|
|
|
|
|
|
|
|
可以看出,**/etc/rc.local** 的启动顺序是在网络后面,但是显然它少了 **Install** 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 **[Install]** 段:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
[Install]
|
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
|
Alias=rc-local.service
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
![](assets/20201223103837439.png)
|
|
|
|
|
|
|
|
|
|
PS:添加了 [Install] 内容后,下面两行的 **WantedBy** 和 **Alias** 两个英文跟上面的都是绿色的,要是绿色才有用。
|
|
|
|
|
|
|
|
|
|
一般需要先修改 **rc-local.service** 的权限才可以进行编辑。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
sudo chmod 777 /lib/systemd/syste,/rc-local.service
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
第三步
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
查看系统中有无 **/etc/rc.local** 这个文件,没有则自己创建一个。
|
|
|
|
|
|
|
|
|
|
然后把你需要启动脚本写入 **/etc/rc.local** ,我们不妨写一些测试的脚本放在里面,以便验证脚本是否生效.
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
#!/bin/sh
|
|
|
|
|
echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log
|
|
|
|
|
exit 0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
![](assets/20201223103852538.png)
|
|
|
|
|
|
|
|
|
|
PS:**#!/bin/sh** 这一行一定要加上!一定要加上!
|
|
|
|
|
|
|
|
|
|
第四步
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
给 **rc.local** 加上权限
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
sudo chmod +x /etc/rc.local
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
做完这一步,还需要最后一步 前面我们说 **systemd** 默认读取 **/etc/systemd/system** 下的配置文件, 所以还需要在 **/etc/systemd/system** 目录下创建软链接
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
![](assets/20201223103909625.png)
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
第五步
|
|
|
|
|
---
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
重启 **Ubuntu** 后,去 **/usr/local** 下看看有没有生成 **test.log** 这个文件以及这个文件的内容。
|
|
|
|
|
![](assets/20201223104001940.png)
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
第六步
|
|
|
|
|
---
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
如果在 **/etc/rc.local** 中添加的是 **./test.sh** 这种类型的,要在末尾加上 &,如下图, **不然重启 ubuntu 的时候会卡在启动界面进不去系统。**
|
|
|
|
|
![](assets/20201223163227878.png)
|
2022-02-28 23:07:00 +08:00
|
|
|
|
|
2022-10-21 17:02:22 +08:00
|
|
|
|
https://www.cnblogs.com/wtil/p/12808424.html
|