创建脚本文件

admin

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原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码