Systemd-Timer

systemd-timer:未記錄的“AccuracySec = 0”

  • April 19, 2021

無論如何可以告訴我systemd-timer的“AccuracySec = 0”的文件在哪裡?我找到的最封閉的文件是“AccuracySec=1us”。我知道 AccuracySec 的含義,但只是想確保 AccuracySec=0 表示最準確。

在裡面man systemd.timer

精度秒=

指定計時器應經過的精度。預設為 1 分鐘。計時器計劃在從 OnCalendar=、OnActiveSec=、OnBootSec=、OnStartupSec=、OnUnitActiveSec= 或 OnUnitInactiveSec= 中指定的時間開始到稍後用 AccuracySec= 配置的時間結束的時間視窗內經過。在此時間視窗內,到期時間將放置在主機特定、隨機但穩定的位置,該位置在所有本地計時器單元之間同步。這樣做是為了優化功耗以抑制不必要的 CPU 喚醒。要獲得最佳精度,請將此選項設置為 1us. 請注意,計時器仍受通過 systemd-system.conf(5) 的 TimerSlackNSec= 設置配置的計時器鬆弛度的影響。有關詳細資訊,請參見 prctl(2)。要優化功耗,請確保將此值設置得盡可能高和盡可能低。…

它沒有定義0us,因此沒有定義行為。我認為您不能假設它意味著“最佳準確性。1us根據手冊頁,它確實意味著“最佳準確性”。

引用自:https://unix.stackexchange.com/questions/645765