Ubuntu 18.04.4 - 首次启动时运行的 Systemd 服务

Ubuntu 18.04.4 - 首次启动时运行的 Systemd 服务

我想要实现的是,在第一次启动时立即启动一个新服务,以安装一行程序并为树莓派设置一些配置,以避免每次我想用以下程序创建新的树莓派时手动执行此操作。

使用 Ext2,我可以在 Windows 操作系统上通常无法访问的文件中添加/覆盖安装在 SD 卡上的文件。

我有一个名为 firstbootsetup.sh 的 bash 脚本:

#!/bin/sh

echo "Bump! I'm your first-boot script."

我有一个名为 firstboot.service 的 systemd 服务:

[Unit]
Description=This is first boot service

[Service]
ExecStart=/bin/bash /usr/bin/firstbootsetup.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

使用以下命令手动启用服务后:

sudo systemctl enable firstboot.service

重启后我可以查看日志

sudo journalctl -fu firstboot.service

看到脚本被执行,并且每 10 秒回显一次 bash 脚本中的行。这验证了它在启用后确实有效。

我看过systemd.preset — 服务启用预设但没有成功尝试在路径指定的配置文件中添加启用。使用我的系统,我在以下路径中进行了预设:

/lib/systemd/system-preset/90-systemd.preset
/usr/lib/systemd/user-preset/90-systemd.preset

这两个文件具有不同的启用功能,但向其中任何一个文件添加 firstboot.service 都无法启用该文件。

如果这些可以运行命令来启用 systemd 服务,那么使用 init.d 和 bash 脚本进行工作也可能会解决我的问题。

相关内容