当前位置: 首页 > news >正文

ubuntu下怎么设置机器程序开机自启?

在 Ubuntu 中,可以通过多种方法设置程序或脚本在系统启动时自动运行。以下是几种常见方法:

方法 1:使用 crontab

crontab 是一个定时任务管理工具,可以用来设置程序在开机时自动运行。

1. 打开终端,编辑当前用户的 crontab 文件:

crontab -e

2. 在文件末尾添加一行,格式如下:

@reboot /path/to/your/script

例如:

@reboot /home/user/startup.sh

3. 保存并退出。下次系统启动时,脚本会自动运行。

方法 2:使用 systemd 服务

这是设置开机启动的推荐方式,适用于需要更多控制的场景。

1. 创建一个 .service 文件:

sudo nano /etc/systemd/system/myapp.service

2. 在文件中添加以下内容:

[Unit]
Description=My Startup Application
After=network.target  # 等待网络服务启动后执行(可选)[Service]
ExecStart=/path/to/your/program_or_script
Restart=always         # 程序崩溃后自动重启(可选)[Install]
WantedBy=multi-user.target

3. 保存文件后,启用服务:

sudo systemctl enable myapp.service

4. 如果需要立即测试,可以启动服务:

sudo systemctl start myapp.service

方法 3:添加到用户启动程序

适用于需要在桌面环境(如 GNOME)下自动运行的应用。

1.打开终端,输入:

gnome-session-properties

2. 在弹出的“启动应用程序首选项”窗口中,点击“添加”。

3. 填写应用程序名称和可执行文件路径。

4. 保存后,下次登录桌面环境时,该应用会自动运行。

方法 4:修改 /etc/rc.local

如果需要兼容旧系统的方式,可以使用 rc.local 文件(现代系统可能默认禁用)。

1. 编辑 /etc/rc.local 文件:

sudo nano /etc/rc.local

2. 在文件中添加要运行的命令:

#!/bin/bash
/path/to/your/script
exit 0

3. 确保文件可执行:

sudo chmod +x /etc/rc.local

方法 5:放置脚本到 /etc/init.d

这是另一个传统方式,但在现代系统中较少使用。

1. 将脚本复制到 /etc/init.d/ 目录:

sudo cp /path/to/your/script /etc/init.d/myscript

2. 赋予可执行权限:

sudo chmod +x /etc/init.d/myscript

3. 添加脚本到系统启动列表:

sudo update-rc.d myscript defaults

注意事项

  • 确保脚本或程序路径正确,并且具有执行权限。
  • 如果脚本依赖网络或其他服务,使用 systemd 的 After 参数确保服务顺序。
  • 测试自动启动效果:重启系统或模拟启动条件。
http://www.lryc.cn/news/487394.html

相关文章:

  • Cesium 相机系统
  • 数据结构(基本概念及顺序表——c语言实现)
  • ZYNQ程序固化——ZYNQ学习笔记7
  • labview使用报表工具从数据库导出数据
  • #define定义宏(2)
  • CentOS网络配置
  • 基于vue框架的的网上宠物交易管理系统46sn1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • MySQL数据库:SQL语言入门 【2】(学习笔记)
  • MySQL深度剖析-索引原理由浅入深
  • 路径规划——RRT-Connect算法
  • 数据科学与SQL:如何计算排列熵?| 基于SQL实现
  • Redis/Codis性能瓶颈揭秘:网卡软中断的影响与优化
  • 微知-DOCA ARGP参数模块的相关接口和用法(config单元、params单元,argp pipe line,回调)
  • PostgreSQL高可用Patroni安装(超详细)
  • mcu之,armv7架构,contex-M4系列,时钟树,中断,IO架构(一)
  • 论文解析:基于区块链的去中心化服务选择,用于QoS感知的云制造(四区)
  • 详细解析STM32 GPIO引脚的8种模式
  • 【hacker送书第16期】Python数据分析、挖掘与可视化、AI全能助手ChatGPT职场工作效率提升技巧与案例
  • 翼鸥教育:从OceanBase V3.1.4 到 V4.2.1,8套核心集群升级实践
  • WebGIS开发中不同坐标系坐标转换问题
  • 【青牛科技】视频监控器应用
  • AWTK-WIDGET-WEB-VIEW 实现笔记 (3) - MacOS
  • PgSQL即时编译JIT | 第1期 | JIT初识
  • Go小记:使用Go实现ssh客户端
  • Nginx Spring boot指定域名跨域设置
  • 深入理解Redis(七)----Redis实现分布式锁
  • Database Advantages (数据库系统的优点)
  • Qt桌面应用开发 第五天(常用控件)
  • 初识Linux · 信号处理 · 续
  • 【Linux】虚拟地址空间,页表,物理内存