systemd-timer:未记录的“AccuracySec = 0”

systemd-timer:未记录的“AccuracySec = 0”

无论如何可以告诉我 systemd-timer 的“AccuracySec=0”文档在哪里吗?我发现的最封闭的文档是“AccuracySec=1us”。我知道 AccuracySec 的含义,但只是想确保 AccuracySec=0 意味着最准确。

答案1

在里面man systemd.timer

准确度秒=

指定计时器的计时精度。默认为 1 分钟。计时器计划在一个时间窗口内运行,该时间窗口从 OnCalendar=、OnActiveSec=、OnBootSec=、OnStartupSec=、OnUnitActiveSec= 或 OnUnitInactiveSec= 中指定的时间开始,到稍后使用 AccuracySec= 配置的时间结束。在此时间窗口内,到期时间将被放置在主机特定的、随机的但稳定的位置,该位置在所有本地计时器单元之间同步。这样做是为了优化功耗以抑制不必要的 CPU 唤醒。为了获得最佳精度,请将此选项设置为 1us。请注意,计时器仍然受通过 systemd-system.conf(5) 的 TimerSlackNSec= 设置配置的计时器松弛的影响。详细信息请参见 prctl(2)。为了优化功耗,请确保将该值设置得尽可能高并根据需要设置得尽可能低。 ...

它没有定义0us,因此行为没有定义。我认为您不能假设它意味着“最佳准确性”。1us根据手册页,它确实意味着“最佳准确性”。

相关内容