Ubuntu 20.04 设置开机自启脚本

Ubuntu 16.04 以后的版本不再支持 update-rc.d 方式添加开机自启脚本,只能使用 systemctrl 命令进行添加。

下面介绍三种添加开机自启脚本的方法,所测试的系统为 Ubuntu 20.04

使用 rc-local.service

rc-local.service 是系统自带的一个开机自启服务,但是在 ubuntu 20.04 上,该服务默认没有开启。

1. 修改rc-local.service

在终端输入: sudo vim /lib/systemd/system/rc-local.service

在文件的最后面添加 [Install] 段的内容,

在这里插入图片描述

2. 创建 /etc/rc.local

Ubuntu 20.04 默认不存在 /etc/rc.local,需要自己创建,

扫描二维码关注公众号,回复: 14759434 查看本文章

在这里插入图片描述

在该文件中添加脚本内容,即开机脚本需要实现的功能,这里只是简单地实现了向某一个文件里填充数据功能。

在这里插入图片描述

3. 修改 /etc/rc.local 权限

脚本要想运行,还需要设置脚本的可执行权限,使用 sudo chmod 777 /etc/rc.localsudo chmod +x /etc/rc.local 修改该文件的权限。

在这里插入图片描述

4. 启动 rc-local.service

输入 sudo systemctl enable rc-local.servicesudo systemctl enable rc-local 使能 rc-local 服务,实际上就是在 /etc/systemd/system/ 目录下创建了一个软链接。

在这里插入图片描述

5. 检查服务状态

使用 sudo systemctl status rc-local.service 查看 rc-local 服务的状态, 显示 loaded 和 enabled。

在这里插入图片描述

6. 重启验证

使用 gnome-session-properties

这是 Ubuntu 自带的命令,可以在用户登录时自动执行某个程序,在终端输入 gnome-session-properties

在这里插入图片描述
添加一个新的启动程序,选中一个已经编写好的脚本,完成添加。

在这里插入图片描述

该脚本的内容如下:

分别向普通用户的文件和系统目录下的文件写数据,

在这里插入图片描述

由于这个自启脚本是普通用户设置的,所以无法修改系统级的文件(需要 root 权限)。

在这里插入图片描述

这种方法只能设置当前用户的自启脚本,即在当前用户登录后才会执行。

自定义开机自启服务

除了系统自带的 rc-local.service,我们也可以自定义一些服务,用来开机自启,方法如下:

1. 创建 service 文件

新建一个 .service 文件,推荐放在 /lib/systemd/system//etc/systemd/system/ 目录下,也可以像我一样,放在任意位置,只不过在打开文件时可能不会出现高亮和彩色字体。下面是我的 service 文件内容,仅供参考,我的文件命名为 :MyService.service

在这里插入图片描述
这里做个简单的解释(仅供参考):

Description 是 service 文件的描述,随便填写
After 表示该服务的依赖关系,看其他人都写这个,我也写了。。
ExecStart 表示服务要启动的程序(或脚本)
WantedBy 指的是表示该服务所属 targe,multi-user.targe 表示多用户命令行状态

2. 编写服务对应的程序

服务对应的程序即开机要运行的脚本程序,下面是我的测试脚本,向指定文件写入指定数据。

在这里插入图片描述

3. 启动服务

使用 systemctl enable /home/test/MyService.service 启动服务

(如果.service 文件不在 /lib/systemd/system//etc/systemd/system/ 目录下,则需要填服务文件的绝对地址)

这个操作和上面的 rc-local 服务相同,它会在 /etc/systemd/system/ 等目录下创建 .service 文件的软链接。

在这里插入图片描述

此时查看该服务文件的状态,显示已载入(loaded),但是未激活,这是正常的(暂时不知道为什么,能用就行)。

这里的服务文件就不用填绝对路径,因为它已经被添加到了系统服务管理中,而且填绝对地址反而会报错,后面用到的命令同理。

在这里插入图片描述
4. 开始服务

systemctl start MyService.service 可以单次运行服务程序,enable 是启动服务,服务对应的脚本在(下次)开机后才会执行,而使用 start,就能立刻执行服务程序。

在这里插入图片描述

查看服务状态,比刚才多了一些内容,可以断定服务程序应该执行成功了,查看对应的文件,发现有了对应的数据,说明服务程序的确成功运行了。

在这里插入图片描述

5. 重启验证

删除刚才生成的测试文件,重启系统,开机后依然会自动生成指定文件及数据,测试成功:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43772810/article/details/126760777
今日推荐