How void-linux/runit works
runit is a Unix service supervision and logging suite. Its principal workflow is system startup into a service-directory supervisor, which launches and monitors service processes; operators issue control commands and inspect status, while optional logging processes rotate and retain service output. The tree also includes process-setup utilities, wait helpers, and supporting runtime libraries. Relationships among sampled supervisors and utilities are clear, but several dispatch details are not excerpted, so those links are shown as unverified rather than asserted.
Main entry points: runsv.c Service supervisor · svlogd.c Log daemon · sv.c Control client · runsvctrl.c Control utility
Components 19
Service supervision
- System init
src/runit-init.c - Shutdown coordinator
src/runit.c - Service directory
src/runsvdir.c - Service supervisor
src/runsv.c
Operator tools
- Control client
src/sv.c - Control utility
src/runsvctrl.c - Status utility
src/runsvstat.c - Wait for up
src/svwaitup.c - Wait for down
src/svwaitdown.c - Process setup
src/chpst.c - Service directory changer
src/runsvchdir.c - Login accounting
src/utmpset.c
Logging
- Log daemon
src/svlogd.c - Rotated log files
Runtime utilities
- C runtime primitives
src/buffer.h - Time primitives
src/taia.h
Other components
- Service process
- Administrator
- Service scripts
Connections 21
- System init → Shutdown coordinator: starts
src/runit-init.c - Service directory → Service supervisor: dispatches
- Service supervisor → Service process: executes
src/runsv.c - Service supervisor → Service scripts: loads scripts
src/runsv.c - Administrator → Control client: requests control
- Control client → Service supervisor: writes commands
- Administrator → Control utility: invokes
- Control utility → Service supervisor: writes commands
- Administrator → Status utility: requests status
- Status utility → Service supervisor: reads status
src/runsvstat.c - Wait for up → Service supervisor: checks status
src/svwaitup.c - Wait for down → Service supervisor: checks status
src/svwaitdown.c - Service supervisor → Log daemon: pipes output
- Log daemon → Rotated log files: writes and rotates
src/svlogd.c - Administrator → Process setup: invokes
- Administrator → Service directory changer: invokes
- Administrator → Login accounting: invokes
- Service supervisor → Time primitives: uses timestamps
src/runsv.c - Log daemon → Time primitives: uses timestamps
src/svlogd.c - Service supervisor → C runtime primitives: uses buffers
src/runsv.c - Log daemon → C runtime primitives: uses buffers
src/svlogd.c