モノトニック・タイマー・ユニットの構成

モノトニック・タイマーは、ブート・イベントなどの様々な開始ポイントに対して相対的なタイム・スパンの後にアクティブ化するか、特定のsystemdユニットがアクティブになるときにアクティブ化します。これらのタイマー・ユニットは、コンピュータが一時的に中断またはシャットダウンされると停止します。モノトニック・タイマーは、OnTypeSecオプションを使用して構成します。ここで、Typeはタイマーが関連付けられているイベントの名前です。一般的なモノトニック・タイマーには、OnBootSecおよびOnUnitActiveSecが含まれます。

  • 必要に応じて、タイマー・ユニットによってトリガーされるサービスを定義する.serviceファイルを作成します。次の手順では、サンプル・サービスは、更新スクリプトを実行するサービス・ユニットである/etc/systemd/system/update.serviceです。

    サービス・ユニットの作成の詳細は、「ユーザーベースのsystemdサービスの作成」を参照してください。

  • サービスを実行する時間と頻度を決定します。この手順では、タイマーは、システムのブートして10分後、およびサービスが最後にアクティブ化された2時間ごとにサービスを実行するように構成されます。

このタスクでは、特定のイベント(システムのブート時またはタイマーのアクティブ化から2時間経過した後)で実行するサービスをトリガーするシステム・タイマーを作成する方法を示します。

  1. 次の内容で/etc/systemd/system/update.timerを作成します:
    [Unit]
    Description="Run the update.service every two hours from Mon to Fri."
    
    [Timer]
    OnBootSec=10min
    OnUnitActiveSec=2h
    Unit=update.service
    
    [Install]
    WantedBy=multi-user.target

    システム・タイマーで構成できるタイマー・オプションの詳細は、systemd.timer(5)およびsystemd.time(7)のマニュアル・ページを参照してください。

  2. このタイマーに関連するすべてのファイルが正しく構成されていることを確認します。
    systemd-analyze verify /etc/systemd/system/update.*

    検出されたエラーは画面に報告されます。

  3. タイマーを開始します。
    sudo systemctl start update.timer

    このコマンドは、現在のセッションのみのタイマーを開始します。

  4. システムのブート時にタイマーが開始されていることを確認します。
    sudo systemctl enable update.timer