linux-添加开机自启动指定脚本

一、systemd 服务(主流方法)

适用于使用systemd的现代发行版(Ubuntu 16.04+/CentOS 7+)

  1. 创建服务文件
bash 复制代码
sudo nano /etc/systemd/system/your_script.service
  1. 写入服务配置(示例):
ini 复制代码
[Unit]
Description=My Custom Script
After=network.target

[Service]
ExecStart=/path/to/your_script.sh
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target
  1. 设置权限并启用服务
bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable your_script.service
  1. 验证服务状态
bash 复制代码
systemctl status your_script.service

二、rc.local 方式(传统方法)

适用于仍支持rc.local的系统(Ubuntu 18.04前/CentOS 6)

  1. 编辑rc.local文件:
bash 复制代码
sudo nano /etc/rc.local
  1. exit 0前添加执行命令:
bash 复制代码
/path/to/your_script.sh &
  1. 设置可执行权限:
bash 复制代码
sudo chmod +x /etc/rc.local

三、cron 定时任务

适用于所有Linux系统(用户级启动)

  1. 编辑当前用户的crontab:
bash 复制代码
crontab -e
  1. 添加启动指令:
bash 复制代码
@reboot /path/to/your_script.sh

四、图形界面配置(桌面环境)

适用于GNOME/KDE等桌面环境

  1. 搜索启动应用程序(Startup Applications)
  2. 点击添加 → 输入名称和脚本路径
  3. 支持设置延迟启动和初始工作目录

五、注意事项与调试

  1. 脚本要求

    • 必须具有可执行权限:chmod +x your_script.sh
    • 使用绝对路径(启动时环境变量不同)
    • 避免使用交互式命令
  2. 日志查看

bash 复制代码
# systemd服务日志
journalctl -u your_script.service -b

# 通用启动日志
dmesg | grep "启动关键词"
  1. 服务管理命令
bash 复制代码
# 禁用服务
sudo systemctl disable your_script.service

# 临时运行测试
sudo systemctl start your_script.service
  1. 优先级建议
    ✅ 推荐使用systemd方案(支持依赖管理、错误重启)
    ⚠️ 慎用rc.local(部分新系统默认禁用)
    🖥️ 桌面程序建议用图形界面配置

六、故障排查流程

  1. 检查服务状态:systemctl status your_service
  2. 测试手动运行:sudo /path/to/script.sh
  3. 查看日志文件:journalctl -xe
  4. 检查脚本权限和路径
  5. 确认执行环境变量是否完整

选择最适合您系统环境的方法,建议优先使用systemd方案以获得最佳兼容性和管理功能。

相关推荐
wVelpro4 小时前
如何在Pycharm 2025.3 版本实现虚拟环境“Make available to all projects”
linux·ide·pycharm
程序员老舅5 小时前
C++高并发精髓:无锁队列深度解析
linux·c++·内存管理·c/c++·原子操作·无锁队列
雨中风华5 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
Yeats_Liao5 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒5 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森6 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
文艺理科生Owen6 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode6 小时前
Redis的主从复制与集群
运维·服务器·redis
翼龙云_cloud6 小时前
腾讯云代理商: Linux 云服务器搭建 FTP 服务指南
linux·服务器·腾讯云
纤纡.6 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql