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 stopSubcommands
| Command | Description |
|---|---|
start | Start 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. |
stop | Stop a backgrounded daemon. |
restart | Stop the running daemon, then start a fresh one (forwards the full flag set). |
status | Report 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):
| Flag | Description |
|---|---|
--home <dir> | Data directory. |
--addr <address> | Also serve the HTTP API on this address (default: off). |
--require-auth | With --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 logsNote
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.