【问题标题】:Set systemd timer to run every 90 seconds将 systemd 计时器设置为每 90 秒运行一次
【发布时间】:2021-01-20 08:03:29
【问题描述】:

这是一个 systemd 计时器文件,在工作日和工作时间内每分钟运行一次 如何让它每 90 秒而不是每 1 分钟运行一次?

[Unit]
Description=A timer that runs every minute
Requires=some-service.service

[Timer]
Unit=some-service.service
AccuracySec=1s
OnCalendar=Sat,Sun,Mon,Tue,Wed,Thu *-*-* 07..17:00/1:00
Persistent=true

[Install]
WantedBy=timers.target

【问题讨论】:

标签: linux bash timer systemd


【解决方案1】:

只需将OnUnitActiveSec=90 添加到定时器部分即可。

来自options description

OnUnitActiveSec= - 定义一个与计时器单元激活的单元上次激活时间相关的计时器

另外,我建议您将 AccuracySec 降低到 1us (AccuracySec=1us) 以获得更准确的性能,当然,如果需要这样做的话。

【讨论】:

  • Alloces。当我使用 OnUnitActiveSec 时,系统忽略了我的 OnCalendar 设置。有没有办法将两者结合起来?那么,它会每 90 秒触发一次并保留其他设置吗?
  • 抱歉,回复晚了。奇怪,我认为它有效。然后您可以将 OnCalendar= 选项更改为 OnCalendar=Sat,Sun,Mon,Tue,Wed,Thu *-*-* 07..17:*:* 并将您的 some-service.service 添加到 Service 部分 ExecStopPost=/bin/sleep 90。在这种情况下,服务将在等待时间过后才会启动。但在这种情况下,服务可能会在 OnCalendar 中指定的时间之后启动一次。如果这仍然相关并且对您有帮助,我会更改答案。
猜你喜欢
  • 2023-01-17
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多