15分ごとにシステムタイマー

15分ごとにシステムタイマー

15分ごとに実行されるシステムタイマーを作成しようとしています。今私にいます:

  • timer-fifteen.timer:

    [Unit]
    Description=15min timer
    
    [Timer]
    OnBootSec=0min
    OnCalendar=*:*:0,15,30,45
    Unit=timer-fifteen.target
    
    [Install]
    WantedBy=basic.target  
    
  • timer-fifteen.target:

    [Unit]
    Description=15min Timer Target
    StopWhenUnneeded=yes
    

これは停止せずに継続して実行されます。代わりにこれを行う必要がありますか*:0,15,30,45:*?どうすればいいですか?

答え1

文法は15ごとに翻訳されます。第二、必要に応じて15ごとに、IMO最も読みやすい方法は次のとおりです。

OnCalendar=*:0/15

あなたの質問に使用したものと最も類似した答えは次のとおりです。

OnCalendar=*:0,15,30,45

追加情報:

答え2

~によるとシステム時間、その設定

OnCalendar=*:0/15

に正確に翻訳

OnCalendar=*:0,15,30,45

つまり、正確に時間、分岐、半分、分岐にデバイスを有効にします。

あなたのサービスによっては、これはあなたが望むものではないかもしれませんし、すべての場合に必要なものではないかもしれません。

タイマー実行中15分ごと– 例: 1:02, 1:17, 1:32, 1:47, 2:02… – 常に最後の実行時間によって異なる – 通過可能システムタイマー環境

OnUnitActiveSec=15min

これで、起動後しばらくしてデバイスを起動したい(デバイスを手動で有効にするか、それを実行する依存関係がない場合)、おそらく次のように指定する必要があります。

OnBootSec=10min
OnUnitActiveSec=15min

デバイスを最初に起動してから10分後に起動し、最初の起動後15分ごとに起動することを許可します。

OnUnitInactiveSecまた、サービスが完了した後に時間計算を開始する設定もあります。停止(またはより一般的にはデバイスは無効になります。)

関連情報