Daemon

Run and control the local control plane: the control loop that boots workstations and forwards sockets.

The daemon is the local control plane: the controller manager (control loops that boot workstations, deliver the in-VM agent, and forward the Docker socket) plus an optional HTTP API. The macOS native app starts one for you automatically; these commands let you run and control it directly.

Bare rl daemon (no subcommand) runs in the foreground; rl daemon start detaches it into the background.

rl daemon                # run in the foreground
rl daemon start          # start detached in the background
rl daemon start --foreground   # explicit foreground form
rl daemon status         # is one running?
rl daemon restart        # stop, then start a fresh one
rl daemon stop

Subcommands

CommandDescription
startStart the daemon detached, logging to <home>/daemon.log. No-op if one is already running for the data dir. --foreground runs it in the foreground instead of detaching.
stopStop a backgrounded daemon.
restartStop the running daemon, then start a fresh one (forwards the full flag set).
statusReport running state, pid, uptime, home, log path, and the latest log line. Exits 3 when none is running.

Flags

These apply to start/restart (and bare daemon):

FlagDescription
--home <dir>Data directory.
--addr <address>Also serve the HTTP API on this address (default: off).
--require-authWith --addr, reject unauthenticated callers (401) instead of treating them as local admin.
--jwks-url <url>Auth-broker JWKS URL; with --addr, broker-minted tokens are accepted alongside local tokens.
--store-dsn <dsn>PostgreSQL DSN for the control-plane store (default $RINGLEADER_STORE_DSN; empty = local SQLite).
--qemu <auto|on|off>Register the qemu provider: auto (detect), on (force), off (never). Default $RINGLEADER_ENABLE_QEMU, else auto.
--metrics-addr <address>Serve Prometheus /metrics on this address (default $RINGLEADER_METRICS_ADDR; empty = disabled, so the local daemon serves none by default).
--log-level <level>debug, info, warn, error (default $RINGLEADER_LOG_LEVEL, else info).
--log-format <text|json>Log format (default $RINGLEADER_LOG_FORMAT, else text).

Inspecting a running daemon

cat  ~/.ringleader/daemon.pid     # the live daemon's pid (absent ⇒ none running)
tail -f ~/.ringleader/daemon.log  # provisioning, agent-delivery and configuration logs

Note

daemon status exits with code 3 (not 1) when no daemon is running, so scripts can distinguish “not running” from a real error, the same convention systemctl uses.