Ubuntu如何添加启动脚本:让服务开机自动运行的最佳指南
在Ubuntu系统中,为了让某些程序、服务或自定义命令在系统启动时自动运行,我们需要添加“启动脚本”,根据需求的不同(是运行一个后台服务,还是仅仅在登录时执行一个命令),有几种不同的方法可以实现。
本文将详细介绍三种最常用的方法:使用Systemd服务(推荐)、使用Cron任务以及使用rc.local。

使用 Systemd(推荐方式)
这是Ubuntu 15.04及以后版本的标准做法,Systemd 提供了强大的服务管理功能,能够精确控制脚本的启动顺序、依赖关系和状态。
步骤 1:创建你的脚本
创建一个简单的测试脚本,假设我们要让一个名为 myscript.sh 的脚本在开机时运行。
在文件中输入以下内容(例如打印一条日志):
#!/bin/bash echo "Hello, Ubuntu! The script is running."
保存并退出(Ctrl+O, Enter, Ctrl+X)。
步骤 2:赋予执行权限
sudo chmod +x /usr/local/bin/myscript.sh
步骤 3:创建 Systemd 服务文件
在 /etc/systemd/system/ 目录下创建一个新的服务文件,命名为 myscript.service。
sudo nano /etc/systemd/system/myscript.service
[Unit] Description=My Custom Startup Script After=network.target [Service] Type=simple ExecStart=/usr/local/bin/myscript.sh Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
配置说明:
Description: 服务的描述。After=network.target: 表示脚本在网络服务启动后执行(适合需要联网的场景)。ExecStart: 指定脚本的绝对路径。WantedBy=multi-user.target: 表示这是默认运行级别下的服务。
步骤 4:启用并启动服务
保存文件后,执行以下命令让系统识别新服务并设置为开机自启:
# 重新加载systemd配置 sudo systemctl daemon-reload # 启用服务(开机自启) sudo systemctl enable myscript.service # 立即启动服务 sudo systemctl start myscript.service
步骤 5:检查状态
使用以下命令查看服务是否正在运行:
sudo systemctl status myscript.service
使用 Crontab(简单快速)
如果你只需要在系统启动后执行一次某个命令,或者需要周期性执行任务,使用 crontab 是最简单的方法。
步骤 1:编辑当前用户的 Crontab
crontab -e
步骤 2:添加开机自启任务
在文件末尾添加以下一行:
@reboot /usr/local/bin/myscript.sh
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

