Skip to content

Hot reload

SIGHUP applies most config changes live, without restarting the process or resetting soft-state counters.

Terminal window
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.

  • 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.

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.