v0.1.0
The first release. Supervision runs on Linux and macOS; on other platforms the
config commands work and the runtime reports UnsupportedPlatform.
Configuration
servicrab.tomlwith a validated schema: project metadata, services,
dependencies, environments, health checks, log settings and watch rules.
Unknown keys are rejected rather than silently ignored.servicrab initwrites an annotated example config;servicrab check
validates one;servicrab listprints the services and their policies.- Per-project and per-service
env_filelayering on top of the process
environment. - Dependency declarations with a deterministic topological start order and
cycle detection.
Running services
servicrab run <SERVICE>supervises one service in the foreground.servicrab up [SERVICE...]supervises a whole stack: dependency-ordered
start, interleaved and colour-prefixed output, reverse-order shutdown,
--abort-on-failure.servicrab watchrestarts services when their watched files change, with
ignore rules and debouncing.- Restart policies
never,on-failureandalways, with exponential
backoff, a restart ceiling, and a stability window. - Per-service process groups: shutdown signals the whole group and escalates
toSIGKILLaftershutdown_timeout, so no orphans are left behind. - Health checks (
command,http,tcp) with readiness gating for
dependents and automatic restart of unhealthy services.
Logs
- Opt-in capture to
<dir>/<service>.logwith size-based rotation, and a
per-service opt-out. servicrab logs [SERVICE...] [-f] [-n N]reads and follows them.
Background daemon
servicrab start/status/stop/restart/down/daemon,
one detached daemon per project.- A documented newline-delimited JSON protocol over a Unix socket, published
as theservicrab-protocolcrate. servicrab reloadapplies config changes to a running stack without
touching the services that did not change; an invalid config is refused and
leaves the stack running.servicrab eventsfollows the daemon's live event stream, as text or JSON,
optionally filtered by service.
Platform integration
servicrab generate systemd|launchdwrites a unit that runs the stack, with
systemctl reloadwired toservicrab reload.servicrab completions <SHELL>for bash, zsh, fish, PowerShell and elvish.servicrab up --jsonandservicrab watch --jsonemit the same event lines
the daemon streams, for scripts and wrappers.