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

一、systemd 服务(主流方法)

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

  1. 创建服务文件
sudo nano /etc/systemd/system/your_script.service
  1. 写入服务配置(示例):
[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. 设置权限并启用服务
sudo systemctl daemon-reload
sudo systemctl enable your_script.service
  1. 验证服务状态
systemctl status your_script.service

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

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

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

三、cron 定时任务

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

  1. 编辑当前用户的crontab:
crontab -e
  1. 添加启动指令:
@reboot /path/to/your_script.sh
  • 注意事项
    • 确保安装了cron服务
      查看服务状态:
      	sudo systemctl status crond
      
    • 查看 cron服务运行日志 (需要确保安装了 rsyslog服务)
      tail -f /var/log/cron
      

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

适用于GNOME/KDE等桌面环境

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

五、注意事项与调试

  1. 脚本要求

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

# systemd服务日志
journalctl -u your_script.service -b

# 通用启动日志
dmesg | grep "启动关键词"
  1. 服务管理命令
# 禁用服务
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方案以获得最佳兼容性和管理功能。

资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在Linux系统中,服务的启动管理方式经历了从init.d到systemd(systemctl)的转变。过去,Linux系统广泛采用init.d来管理服务的启动。然而,随着技术的发展,新版Linux系统开始采用systemd(systemctl)作为服务启动的管理方式。接下来,我们将通过教程来讲解如何使用systemd(systemctl)编写Linux开机自启动服务脚本。 首先,需要明确的是,systemd是一个系统和服务管理器,它提供了强大的功能来控制和管理Linux系统中的服务。systemd使用.service文件来定义服务的启动行为,这些文件通常位于/etc/systemd/system/目录下。 编写一个开机自启动服务脚本的步骤如下: 创建.service文件:在/etc/systemd/system/目录下创建一个新的.service文件,文件名以.service结尾,例如my_service.service。 编辑.service文件:使用文本编辑器打开刚才创建的.service文件,并按照以下格式进行编辑: [Unit]段:用于定义服务的描述信息和依赖关系。例如: 这里Description字段描述了服务的名称,After字段指定了该服务在network.target之后启动。 [Service]段:用于定义服务的执行细节。例如: ExecStart字段指定了服务启动时要执行的命令,ExecStop字段指定了服务停止时要执行的命令,Restart字段设置为always表示服务在失败后会自动重启。 [Install]段:用于定义服务的安装和启动方式。例如: WantedBy字段指定了服务在哪个运行级别下启动,multi-user.target通常对应于多用户图形界面或命
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值