systemd 单元启动后如何重新启动系统?

systemd 单元启动后如何重新启动系统?

在 Ubuntu 16 Xenial(systemd 版本 229)上,我有以下 systemd 服务:

[Unit]
Description=Example unit
Documentation=man:apt(8)
ConditionACPower=true
After=apt-daily.service

[Service]
Type=oneshot
ExecStart=echo foobar
KillMode=process
TimeoutStopSec=900

现在,我希望操作系统在上述服务启动后重新启动,无论启动成功还是失败。

我怎样才能做到这一点?

编辑:

我创建了一个重新启动服务文件/etc/systemd/system/my-reboot.service

[Unit]
Description=Reboot
RefuseManualStart=true

[Service]
Type=simple
ExecStartPre=/bin/sleep 30
ExecStart=/sbin/reboot

并添加到OP服务“示例单元”:

[Unit]
Wants=my-reboot.service
Before=my-reboot.service

在第一次测试中,此方法有效:“示例单元”启动后 30 秒,系统重新启动。这是一个好方法吗?

相关内容