Arch-Linux

將 systemd 計時器配置為在首次執行後每小時執行一次

  • May 27, 2022

我有一個每小時執行一次的服務(使用OnCalendar=hourly)。如果系統 24/7 執行,這非常有用,但在退出掛起/休眠狀態後會變得一團糟。該服務將立即執行 - 這是我想要的 - 但它會在每個小時的頂部再次執行,無論自上次執行以來已經過去了多少時間。

有沒有辦法配置計時器以 1 小時間隔執行?

您可以在Arch-wiki 中查看 systemd timers的詳細範例。

對於您的情況,您可以使用單調計時器,例如:

[Timer]
OnBootSec=1min
OnUnitActiveSec=1h

實時計時器OnCalendar=hourly在啟動後執行(對於錯過的小時,因為Persistent=true我猜是因為您的猜測),然後將遵循固定的日期時間值,因此正如您所描述的,啟動後前兩次執行之間的間隔可能不到一個小時。

但是你可能不想使用單調計時器,儘管它涵蓋了你想要的關於暫停的內容,如果你不想在重啟時出現這種行為。Persistent=false那麼適合您的情況,但所有執行都將在固定時間進行。

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