gol*_*cks 5 systemd systemd-timer
我有一个计时器,字面上是这样的:
foobar.service:
[Unit]
Description=Timer Test
Requires=rsyslog.service # rsyslog is an active local service.
[Service]
Type=simple
ExecStart=/usr/bin/logger "Running foobar timer test!"
Run Code Online (Sandbox Code Playgroud)
foobar.timer:
[Unit]
Description=Test Timer
[Timer]
OnCalendar=10:00 # See below about the time.
Unit=foobar.service
RemainAfterElapse=no
[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)
我通过在未来 10 分钟内安装它 ( systemctl enable foobar.timer
) 来测试它OnCalendar
。但是,它不会运行,并且:
> systemctl status foobar.timer
? foobar.timer - Local Daily Tasks Timer
Loaded: loaded (/etc/systemd/system/what.timer; enabled; vendor preset: enabled)
Active: inactive (dead)
Trigger: n/a
Run Code Online (Sandbox Code Playgroud)
它声称已加载并启用,但不活动(已死)。这尤其令人困惑,因为我已经按照这种模式编写了其他计时器并且它们都可以工作...o_O?
除了重新启动系统(我不喜欢这样做,它是一个活动服务器)之外,我已经完成了所有工作。
除了重新启动系统,我已经完成了所有工作
哪个会起作用。否则,您必须:
systemctl start foobar.timer
systemctl restart timers.target
systemctl status
现在将显示foobar.timer
为“活动(等待)”。
根据 don_crissti 的评论,启用计时器--now
也有效:
systemctl enable --now foobar.timer
Run Code Online (Sandbox Code Playgroud)