返回列表 发布新帖
查看: 95|回复: 0

Linux 如何设置开机自启:全面指南

发表于 2025-5-20 15:50:22 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在日常运维和开发中,我们经常希望某些程序或服务在系统启动时自动运行,比如 Web 服务、数据库、监控脚本、定时任务等。本文将详细介绍在 Linux 系统中设置开机自启的常见方法,适用于常见发行版如 CentOS、Ubuntu、Debian 等。
一、使用 systemd 管理服务(推荐)
大多数现代 Linux 发行版(如 CentOS 7+/Ubuntu 16.04+)使用 systemd 作为初始化系统。
1. 创建 systemd 服务文件
  1. sudo nano /etc/systemd/system/myapp.service
复制代码
写入如下内容(根据实际情况修改):
[Unit]
Description=My Application Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /opt/myapp/app.py
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target
2. 重新加载 systemd 配置
  1. sudo systemctl daemon-reexec
复制代码
  1. sudo systemctl daemon-reload
复制代码
3. 设置开机启动
  1. sudo systemctl enable myapp.service
复制代码
4. 启动服务并检查状态
  1. sudo systemctl start myapp.service
复制代码
  1. sudo systemctl status myapp.service
复制代码
二、使用 rc.local 实现自启(传统方式)
适用于旧版本 Linux 或需要简单实现时使用。
1. 编辑 rc.local 文件
某些系统默认该文件不存在或未设置执行权限。
  1. sudo nano /etc/rc.local
复制代码
添加你希望开机执行的命令,比如:
#!/bin/bash
python3 /opt/myapp/app.py &
exit 0
2. 添加执行权限
  1. sudo chmod +x /etc/rc.local
复制代码
3. 启用 rc.local(如果 systemd 系统中未启用)
对于 Ubuntu 20+,可以启用 rc-local.service:
  1. sudo systemctl enable rc-local
复制代码
  1. sudo systemctl start rc-local
复制代码
三、使用 crontab @reboot 设置自启(简洁快速)
cron 提供 @reboot 参数来在系统启动后运行任务。
1. 编辑当前用户的 crontab
  1. crontab -e
复制代码
添加以下内容:
  1. @reboot /usr/bin/python3 /opt/myapp/app.py
复制代码
2. 检查是否添加成功
  1. crontab -l
复制代码
✅ 注意事项:
路径必须为绝对路径。
如果脚本依赖网络或数据库,可能需要 sleep 10 等等待逻辑。
输出建议重定向到日志文件,避免无法调试:
  1. @reboot /usr/bin/python3 /opt/myapp/app.py >> /var/log/myapp.log 2>&1
复制代码
四、使用桌面环境的“启动应用程序”(适用于图形界面)
如果你使用的是带 GUI 的系统,如 Ubuntu Desktop:
  • 打开“启动应用程序”(Startup Applications)。
  • 点击“添加”。
  • 输入名称、命令和说明。
  • 保存并重启验证。
五、总结对比
方法适用范围优点缺点
systemd推荐方式稳定、可管理、日志完善配置复杂一些
rc.local老系统、简单任务快速直接兼容性差,已弃用
crontab @reboot任意任务、自定义脚本简洁灵活无日志、管理不便
GUI启动项桌面用户直观无法用于服务程序
六、附录:查看已设置的开机启动项
查看 systemd 启动项
  1. systemctl list-unit-files | grep enabled
复制代码
查看当前正在运行的服务
  1. systemctl list-units --type=service
复制代码
查看 crontab 的启动项
  1. crontab -l
复制代码
结语
不同场景下设置开机自启的方法各有优劣,如果你是做服务运维或开发部署,推荐使用 systemd 管理自启;如果只是简单脚本或测试,crontab @reboot 会更加快捷。
如有具体使用需求或遇到问题,欢迎评论交流!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.100222 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表