如何在 Ubuntu 22.04 Jammy Jellyfish 服务器/桌面上启动时运行脚本
本文的目的是在 Ubuntu 22.04 Jammy Jellyfish 服务器/桌面中配置一个脚本(例如 Bash 脚本或 Python 脚本)以在系统启动时运行。
在本教程中您将学习:
如何创建Systemd服务单元
如何创建简单的磁盘空间检查脚本
如何设置Systemd服务单元文件的权限
如何设置脚本权限
如何让Systemd服务单元在系统启动时运行
如何在 Ubuntu 22.04 上启动时运行脚本分步说明
Ubuntu 22.04 基于 Systemd,因此在启动时运行脚本的最简单且推荐的方法是创建 Systemd 服务文件并在系统启动期间通过此服务执行任何脚本,例如 bash、python 等。
以下步骤将向您展示如何运行一个示例 bash 脚本,该脚本会在每次 Ubuntu 22.04 启动时报告 /home
目录的磁盘空间使用情况并将报告保存在 /root
目录中系统启动。
首先,创建一个 Systemd 服务文件,如下例所示。我们将此文件存储为
/etc/systemd/system/disk-space-check.service
。[Unit] After=network.target [Service] ExecStart=/usr/local/bin/disk-space-check.sh [Install] WantedBy=default.target
之后:指示 systemd 何时运行脚本。在我们的例子中,脚本将在网络连接后运行。其他示例可能是 mysql.target 等。 ExecStart:此字段提供启动时要执行的实际脚本的完整路径 WantedBy:systemd 单元应安装到哪个引导目标中
注意
有关如何创建 Systemd 服务单元的更多信息,请执行man systemd.unit
命令。创建一个在 Ubuntu 系统启动时执行的脚本。如上述步骤 1 中所指定,我们示例中的新脚本的路径和名称将为
/usr/local/bin/disk-space-check.sh
。下面是此类脚本的示例:
#!/bin/bash date > /root/disk_space_report.txt du -sh /home/ >> /root/disk_space_report.txt
为 Systemd 服务单元和脚本设置适当的权限:
$ sudo chmod 744 /usr/local/bin/disk-space-check.sh $ sudo chmod 664 /etc/systemd/system/disk-space-check.service
接下来,启用服务单元:
$ sudo systemctl daemon-reload $ sudo systemctl enable disk-space-check.service
现在您已准备好重新启动系统。系统启动后,您应该在
/root
目录中看到以下包含磁盘空间使用情况的文件:$ sudo ls /root/ disk_space_report.txt
结束语
在本教程中,我们了解了如何配置 Ubuntu 22.04 在每次系统启动时运行脚本。对于系统管理员来说,这是一个方便的功能,可以确保每次 Ubuntu 从系统重新启动时加载时都执行 Bash 或 Python 脚本。