Systemd-Timer

Linux 定時器中的混合條件

  • October 23, 2020

我想創建一個觸發、完成執行、等待 30 秒並再次觸發但僅在夜間觸發的計時器。到目前為止,我得到了這個:

[Timer]
OnUnitInactiveSec=30s
OnCalendar= * - * - * 23,24,00,01,02,03,04,05,06,07:*

但是我不知道這兩個條件是充當“和”還是充當“或”,換句話說,我不知道滿足一個條件是否足以觸發計時器或兩者都需要(即我想要的是)。我在幫助頁面中找不到該詳細資訊,而我在網際網路上找到的範例僅使用了一種此類條件。

根據systemd.timer

多個指令可以組合為相同類型和不同類型,在這種情況下,只要任何指定的定時器表達式結束,定時器單元就會觸發。例如,通過組合 OnBootSec= 和 OnUnitActiveSec=,可以定義一個定時器,該定時器以固定的時間間隔執行並每次啟動特定的服務。此外,單調時間表達式和 OnCalendar= 日曆表達式可以組合在同一計時器單元中。

“任何”規範表明它是“或”關係。

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