Hot reload
SIGHUP applies most config changes live, without restarting the process or resetting soft-state counters.
SIGHUP
Section titled “SIGHUP”kill -HUP $(pgrep jaque)On SIGHUP, jaque compiles the new config, computes a diff against the
running one (which objects were added, removed, or changed), and swaps
the object graph atomically — the engine never runs against a half-applied
config. The event ConfigReloaded (or ConfigRejected, if the new config
fails validation) is written to the event log like any other fact, so
“what changed and when” survives in history rather than only in a log
line that scrolled past. See Event
sourcing for why that’s the same
mechanism as everything else in jaque, not a special case.
What you don’t need a restart for
Section titled “What you don’t need a restart for”- Adding, removing, or editing hosts and services.
- Changing check schedules, thresholds, or flap settings.
- Adding or editing contacts, notification policies, and escalations.
- Adding or editing labels and saved views.
A rejected reload (bad CUE, a schema violation) leaves the previous, still-valid config running — a typo in a config edit can’t take down monitoring that was already working.
What a reload does not affect
Section titled “What a reload does not affect”An object that disappears from the new config doesn’t just vanish from
view — it’s retired (ObjectRetired in the log), which is how the
projection and history stay consistent with what’s actually still being
checked, rather than the query API returning stale entries for objects
that no longer exist.