Cron & Scheduling

systemdタイマー作成 · 暦と起動後の間隔を分けて確認

暦時刻か起動後の間隔を選び、既存の.serviceを起動する.timerを組み立てます。

systemdタイマー作成

起動条件の入力

タイマー設定と確認

入力はこのブラウザー内で処理され、サーバーには送信されません。

オプション

既存サービスの基名を入力してください。

毎朝のバックアップと起動5分後の処理は、同じ「定期実行」でも基準になる時計が違います。systemdタイマー作成はOnCalendarの書き方と単調時計の設定を分け、cronの5欄を誤って流用しないための画面です。 このsystemdタイマー設定では、二つの基準を先に選びます。

このsystemdタイマー作成で出力するのは.timerだけです。設定と説明に加えてsystemd-analyze calendarの確認コマンドを示し、実際の次回時刻は対象Linuxで確かめられます。

systemdタイマー作成を使う理由

いつ起動するかと、どこで検証するかを一緒に示します。

暦時刻と起動後の間隔を混同しない

OnCalendarは壁時計、OnBootSecは起動を基準にします。OnUnitActiveSecはサービスの前回起動から数えるため、単なる「毎時」とは違います。

暦に固定した実行時刻と、起動後から数える時刻を並べた二本の時間軸。

未確認の式を有効扱いしない

ブラウザーが確認するのは単純な時刻や公式の短縮語だけです。リストやタイムゾーンを含む式は未確認と表示し、Linux上の検証コマンドへつなぎます。

設定ファイルの横に簡易確認の状態と端末での検証手順を並べた図。

入力前に知っておきたい三つの基準

01

時計を選ぶ

初期値dailyは毎日0時です。相対モードの5minは起動後5分、OnUnitActiveSecは処理の終了後ではなく前回の起動から数えます。

  • ここでは二つのモードを同時に書き込みません。
02

既存サービスの名前を指定

拡張子を除いた基名を入力します。プリセットや消去は変更内容を確認してから適用し、一度だけ取り消せます。

  • 基名が空のままでは配布用ファイルを作りません。
03

対象のLinuxで確かめる

簡易チェックが通っても、完全なOnCalendar解釈や次回時刻はsystemd-analyze calendarで確認してください。保存後はverifyとstatusも使います。 タイマーのチェック方法として、保存したユニットの状態も確認します。

  • 自動生成を切るとCtrl/Cmd+Enterで実行できます。

生成される設定の中身

暦に合わせて起動

daily・hourly・平日9時の候補か、単一のOnCalendar式を指定できます。Persistentは停止中に逃した暦上の予定にだけ作用します。

起動からの経過で起動

OnBootSecで初回、任意のOnUnitActiveSecでサービスの前回起動からの再実行間隔を指定します。

サービスに対応する.timer

同名.serviceへのUnit参照、必要な場合のランダム遅延、timers.targetへの登録をまとめ、設定と検証コマンドを別々にコピーできます。

適用前に確認する境界

サービス本体は生成しない
ExecStartを含む.serviceは出力しません。同名のサービスが対象ホストにあることを確認してください。
ブラウザーの解析は一部だけ
単純な日時と短縮語以外のリスト・段階指定・月末・タイムゾーンは未確認になります。対象OSのsystemd-analyzeが最終判断です。
cronの5欄は受け付けない
OnCalendarはcronとは別の構文です。Persistentは相対タイマーに効かず、AccuracySecの既定値では実行に1分の幅があります。
結果はシステムタイマー1つだけ
OnCalendarと単調時計のトリガーは混在させず、カレンダー入力は1行に限ります。ユーザー単位やOnStartupSecは扱いません。
コマンドは実行されません
このページはsystemctlの実行やホストへのユニット保存をせず、正確な次回実行時刻も予測しません。対象のLinux上で保存したタイマーと既存のサービスを確認してください。

systemdタイマー作成のよくある疑問

.timerと.serviceが二つ必要なのはなぜですか?

.timerは時刻、.serviceは実行コマンドと環境を担当します。このページは前者だけを作ります。

Persistent=trueは何をしますか?

暦タイマーの停止中に予定を逃した場合、再び有効になった時に補完実行できます。OnBootSecの繰り返し設定ではありません。

OnCalendarの解釈をどう確かめますか?

表示されたsystemd-analyze calendarを対象Linuxで実行し、正規化された式と次の候補日時を確認します。

端末では動くコマンドがタイマーで失敗するのはなぜですか?

サービスは対話シェルと異なる環境で動きます。絶対パスや必要な環境変数を確認し、journalを調べてください。

暦の時刻より早くサービスが起動したのはなぜですか?

OnBootSecがすでに期限を迎えた場合やPersistentによる補完実行が考えられます。本画面では両方式を分けています。

実行日時が予想と違いますか?

systemdタイマー作成を始める

サービス名を入れて.timerを作り、Linux側で検証してから有効にしてください。

設定はブラウザー内で生成され、送信されません。