Co-authored-by: jason.woltje <jason@diversecanvas.com> Co-committed-by: jason.woltje <jason@diversecanvas.com>
31 lines
1.7 KiB
SYSTEMD
31 lines
1.7 KiB
SYSTEMD
[Unit]
|
|
# Cadence timer for the Mosaic wake FALLBACK safety drain (F7, EPIC #892, W7).
|
|
# Drives mosaic-wake-fallback.service on a LOW-FREQUENCY per-class cadence bound,
|
|
# INDEPENDENT of the event-driven detector daemon, so a stalled detector can never
|
|
# silently starve delivery. This is the framework-shipped canon-side FALLBACK WAKE:
|
|
# a heartbeat-shaped timer that survives ONLY as the per-class fallback cadence
|
|
# (WAKE-DOCTRINE) bounded by urgency SLO — never the steady-state wake mechanism.
|
|
Description=Mosaic wake fallback cadence timer (per-class safety wake)
|
|
After=default.target
|
|
|
|
[Timer]
|
|
# BASE cadence placeholder. The A10 installer OVERRIDES this per-class from the
|
|
# watch-list schema's per-class `fallback_cadence` bound, via a BLANK-RESET drop-in
|
|
# (an empty OnUnitActiveSec= reset line, then the new value) written under
|
|
# mosaic-wake-fallback.timer.d/. systemd merges base + drop-ins so exactly ONE
|
|
# effective OnUnitActiveUSec results (wake-install.sh verify-single). The base value
|
|
# here is a conservative safety floor for a host installed before any per-class
|
|
# drop-in is written — it is deliberately low-frequency (never the primary wake).
|
|
OnUnitActiveSec=1h
|
|
# Also fire shortly after boot so a freshly-booted host does not wait a full cadence
|
|
# for its first safety drain. OnBootSec is a distinct key from OnUnitActiveSec and
|
|
# does NOT count toward the exactly-one-OnUnitActiveUSec blank-reset invariant.
|
|
OnBootSec=15min
|
|
# Catch up a missed elapse (host asleep/off) rather than silently skipping it — a
|
|
# fallback that silently skips is exactly the starvation this unit exists to prevent.
|
|
Persistent=true
|
|
Unit=mosaic-wake-fallback.service
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|