Systemd:如何在重启后保持计时器活动?

tse*_*tse 5 systemd coreos

我需要设置 CoreOS 机器的每日重启。所以我有/etc/systemd/system/reboot.service

[Unit]
Description=Daily reboot

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c 'reboot'
Run Code Online (Sandbox Code Playgroud)

...和/etc/systemd/system/reboot.timer​​:

[Unit]
Description=Daily reboot

[Timer]
OnCalendar=*-*-* 21:20:00
Run Code Online (Sandbox Code Playgroud)

如果我通过 激活计时器sudo systemctl start reboot.timer,我会在列表中看到它:

core@node-011 ~ $ sudo systemctl list-timers --all | grep reboot
Fri 2019-03-22 21:20:00 UTC  12h left  n/a                          n/a      reboot.timer                 reboot.service
core@node-011 ~ $ 
Run Code Online (Sandbox Code Playgroud)

但重新启动后,该计时器被关闭(不在列表中)。

如何配置持久化?

Sve*_*ven 8

您可以使用以下命令永久激活 SystemD 单元enable

sudo systemctl enable reboot.timer
Run Code Online (Sandbox Code Playgroud)

注意:start仅启动它们一次,并且enable不要立即启动它们(仅在下次启动时启动)。您可以将两者与--now选项结合起来:

sudo systemctl enable --now reboot.timer
Run Code Online (Sandbox Code Playgroud)

将永久激活该装置并立即启动它。