文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Ubuntu 20.04 设置开机自启脚本

2023-09-01 11:37

关注

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,需要自己创建,

在这里插入图片描述

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

在这里插入图片描述

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. 重启验证

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

在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_43772810/article/details/126760777

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯