最初の実行後に毎時間実行されるようにsystemdタイマーを構成する

最初の実行後に毎時間実行されるようにsystemdタイマーを構成する

毎時間実行されるサービスがあります。OnCalendar=時間別)。これはうまくいきます。もしシステムは年中無休で動作しますが、一時停止/休止状態を終了すると混乱します。サービスはすぐに実行されます(必要に応じて)。ただし、最後の実行から経過した時間にかかわらず、1時間ごとに再実行されます。

1時間間隔でタイマーを実行するように設定する方法はありますか?

答え1

詳細な例を見ることができますシステムタイマー用のArch-wiki

あなたの場合は、次のものを使用できます鍛造タイマー、それは次のとおりです。

[Timer]
OnBootSec=1min
OnUnitActiveSec=1h

これリアルタイムタイマー OnCalendar=hourly開始後に実行され(私の意見では見逃された時間についてPersistent=true)、固定の日付/時間値に従うため、説明によれば、開始後の最初の2つの実行間の間隔は1時間未満になる可能性があります。

しかし、鍛造タイマーを使用したくないでしょう。鍛造タイマーには、希望の一時停止機能が含まれていますが、再起動時にこの動作を望まない場合は可能です。Persistent=falseあなたの場合に適していますが、すべての実行は一定の時間に行われます。

関連情報