107.2基礎
systemdの.timer unitで、暦に基づき毎日関連serviceを起動する。
[Timer]セクションへ指定する適切な行はどれか。
× 不正解
OnCalendar=は暦ベースの予定を定義する。dailyは毎日のcalendar eventを表す。
詳細解説
誤り
OnActiveSec=dailyOnActiveSecは経過時間を指定し、dailyというcalendar表現を取らない。
誤り。OnActiveSecは5min等の時間spanを取り、dailyというcalendar eventを毎日繰り返すdirectiveではない。
誤り
OnBootSec=dailyOnBootSecはboot後の経過時間を指定する。
誤り。OnBootSecはbootからの相対経過時間を扱い、暦日の境界に基づく毎日予定を表さない。
正しい
OnCalendar=dailyOnCalendarは暦表現を受け取り、dailyを毎日の予定として扱う。
正しい。OnCalendar=dailyはcalendar eventとして毎日発火する予定をtimerへ与える。
誤り
Unit=dailyUnitは起動対象unit名を指定し、実行時刻を定義しない。
誤り。Unit=dailyはdailyというunit名を対象にしようとする記述で、発火時刻を設定しない。
実際に確かめる
一時的な検証環境で実行できる例です。
systemd-analyze calendar daily 2>&1 | sed -n '1,4p'期待される結果
Normalized formとNext elapseを含むcalendar解析結果(時刻は実行時点で変化)理解のポイント
- OnCalendarは暦
- OnActiveSecは相対時間
- Unitは起動対象
確認時の注意
- 確認環境: systemd-analyzeを備えたsystemd環境 / 解析のみ
基礎のおさらい
calendar timer
OnCalendarは曜日、年月日、時刻などを組み合わせ、systemd-analyze calendarで正規化と次回時刻を確認できる。
monotonic timer
OnActiveSecやOnBootSecはwall clockの暦ではなく、特定の起点からの経過時間を使う。
問題IDKP-107-699
確認環境systemd-analyzeを備えたsystemd環境 / 解析のみ
最終技術確認2026-08-13
誤り・権利侵害を報告