我有一个计时器,字面意思是这样的:
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!"
foobar.计时器:
[Unit]
Description=Test Timer
[Timer]
OnCalendar=10:00 # See below about the time.
Unit=foobar.service
RemainAfterElapse=no
[Install]
WantedBy=timers.target
我通过在未来 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
它声称已加载并启用,但处于非活动状态(死亡)。这尤其令人困惑,因为我已经按照这种模式编写了其他计时器,并且它们都可以工作......o_O?
我已经完成了除了重新启动系统之外的所有操作(我不喜欢这样做,它是一个活动服务器)。
答案1
我已经完成了除了重新启动系统之外的所有操作
哪个会起作用。否则,您必须:
- 显式启动计时器:
systemctl start foobar.timer
- 或者重新启动计时器目标:
systemctl restart timers.target
systemctl status
现在将显示foobar.timer
为“活动(等待)”。
根据 don_crissti 的评论,启用计时器--now
也可以:
systemctl enable --now foobar.timer