系统首次启动服务重新启动系统

系统首次启动服务重新启动系统

我正在使用 Debian preseed 构建一个“基本”Linux 操作系统,其中我创建了一个“firstboot.service”,在首次启动时运行,以设置设备特定设置 - 即主机名。我通过 clonezilla 将基本映像分发到各个信息亭,而不是在每个设备上运行预置。

为了强制首次启动 ConditionFirstBoot=true,我在创建 Clonezille 映像之前的最后一步中删除了文件 /etc/machine-id。

自定义完成后,如何从首次启动脚本自动重新启动自助服务终端?我需要执行此操作,直到我的自定义(即主机名)重新启动后,lightdm 才会自动登录。

我尝试强制重新启动,但它不起作用并且出现错误。

如何从第一个启动脚本执行重新启动?

Firstboot.service 内容 /lib/systemd/system/firstboot.service

[Unit]
Description=FirstBootSetup
ConditionFirstBoot=true

[Service]
Type=idle
RemainAfterExit=yes
ExecStart=/bin/bash /root/firstboot.bash

[Install]
WantedBy=multi-user.target

由firstboot.service /root/firstboot.bash运行的脚本

systemd-machine-id-setup
hostname "RANDOM"

if [ -f /etc/machine-id ]; then
  systemctl --force --force reboot
endif

systemctl 状态首次启动

systemctl status firstboot
firstboot.service - FirstBootSetup
Loaded: loaded (/lib/systemd/system/firstboot.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2019-02-07 11:41:45 AEST; 1h 00min ago
Process: 562 ExecStart=/bin/bash /root/firstboot.bash (code=exited, status=2)
 Main PID: 562 (code=exited, status=2)

答案1

事实证明,shell 脚本的语法不正确,shell 根本没有运行命令。正如问题评论中提到的,它应该有,但fi实际上有endif

相关内容