Ubuntu 24.04 中设置开机自启动软件

在 Ubuntu 24.04 中设置开机自启动软件可以通过以下几种方法来实现:

1. 使用"启动应用程序"图形界面

这是最简单的方法,适合大多数用户。

  1. 打开"启动应用程序":

    • 你可以通过在活动栏中搜索"Startup Applications"或"启动应用程序"来找到并打开它。
  2. 添加新启动项:

    • 在"启动应用程序"窗口中,点击"Add"(添加)按钮。
    • 在弹出的窗口中,你需要填写以下信息:
      • Name: 启动项的名称(随意命名)。
      • Command : 启动应用程序的命令路径。例如,如果你想开机启动 Firefox,可以填写 firefox。
      • Comment: 对启动项的描述(可选)。
  3. 保存并退出:

    • 填写完成后,点击"Add"按钮保存配置。
    • 关闭"启动应用程序"窗口。

该程序现在将会在每次启动 Ubuntu 时自动启动。

2. 将应用程序添加到 /etc/rc.local 文件

这是一个比较经典的方法,适合需要以超级用户权限运行的应用程序。

  1. 编辑 rc.local 文件:

    • 打开终端并使用以下命令打开或创建 /etc/rc.local 文件(使用nano或你喜欢的文本编辑器):

      bash 复制代码
      sudo nano /etc/rc.local
  2. 添加启动命令:

    • 在文件的末尾添加你想要自启动的应用程序的命令。

    • 确保在所有命令前添加 #!/bin/sh -e 以指定脚本解释器,并在文件的最后添加 exit 0。
      例如:

      bash 复制代码
      #!/bin/sh -e
      /usr/bin/firefox &
      exit 0
  3. 保存并退出:

    • 按 Ctrl + O 保存文件,然后按 Ctrl + X 退出编辑器。
  4. 赋予执行权限:

    • 运行以下命令给 rc.local 文件赋予执行权限:

      bash 复制代码
      sudo chmod +x /etc/rc.local

3. 使用 systemd 创建服务

这种方法适用于需要在系统启动时运行的守护进程或后台任务。

  1. 创建 systemd 服务文件:

    • 使用以下命令创建一个新的服务文件:

      bash 复制代码
      sudo nano /etc/systemd/system/myapp.service
  2. 编写服务文件:

    • 在文件中输入以下内容,替换 myapp 和 ExecStart 路径为你的实际应用程序路径:

      ini 复制代码
      [Unit]
      Description=MyApp Service
      After=network.target
      
      [Service]
      ExecStart=/usr/bin/myapp
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
  3. 保存并退出:

    • 按 Ctrl + O 保存文件,然后按 Ctrl + X 退出编辑器。
  4. 启用并启动服务:

    • 运行以下命令使服务在启动时自动启动:

      bash 复制代码
      sudo systemctl enable myapp.service
      sudo systemctl start myapp.service

4. 使用 .bashrc 文件

如果你希望在每次用户登录时自动启动某些程序,可以将命令添加到用户的 .bashrc 文件中。

  1. 编辑 .bashrc 文件:

    • 打开终端并使用以下命令编辑 .bashrc 文件:

      bash 复制代码
      nano ~/.bashrc
  2. 添加启动命令:

    • 在文件的末尾添加启动命令:

      bash 复制代码
      /usr/bin/firefox &
  3. 保存并退出:

    • 按 Ctrl + O 保存文件,然后按 Ctrl + X 退出编辑器。

这些方法适合不同的使用场景,根据你的需求选择适合的方式设置开机自启动软件。

相关推荐
从琳开始98915 小时前
从Socket到TCP回显服务器:Java网络编程完整指南
java·服务器·网络·tcp/ip·java-ee
养军博客15 小时前
Spring Security 4.x / 5.x / 6.x 配置全对比:前后端不分离与前后端分离
java·后端·spring·springsecurity
wifi___15 小时前
SpringBoot自动装配原理
java·spring boot·后端
SL_staff16 小时前
制造订单交付闭环实践:用跨部门计划模板解决缺料-停机-返工三角死循环
java·开源·产品
device_Any16 小时前
接口文档写着三个字段,接口返回了五个
android·java·linux
Wang's Blog16 小时前
Java 项目实战: 交友项目 - 小视频模块实战:访客记录、FastDFS 存储与 SpringCache 缓存
java·缓存·交友
香蕉大香蕉(06敬畏市场)16 小时前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
吹什么轩17 小时前
constexpr 完全指南:从 const 的两种含义,到编译期计算的四次演进
java·前端·javascript
她的男孩17 小时前
租户 A 的验证码,却用了租户 B 的 AccessKey:Forge Admin 修跨租户短信串发
java·spring boot·saas
LabVIEW开发17 小时前
LabVIEW 局部变量与数据流:这道 CLAD 题为什么答案是 Undefined
java·开发语言·labview