s6 is an init replacement and service manager, similar to runit. The overview is good: https://skarnet.org/software/s6/overview.html
For every service/daemon controlled by s6, an
sv-supervise process watches it.
s6-svscan is a supervisor of supervisors — it watches a flock of
Configuration of a daemon is handled by its controlling
sv-supervise process, based out of a “service directory”.
All service directories controlled by
s6-svscan are collected under a “scan directory”.
s6-svc command controls a
sv-supervise process, and lets us signal its daemon.
s6-svscanctl command controls a set of
sv-supervise processes, and start or stop entire process trees.
The scan directory is typically ‘/service/’ (or /var/svc.d/ on Alpine). The service directories might be under ‘/etc/service’ or ‘/var/service’ or ‘/etc/sv’.
Note that the “scan directory” is set as the argument to
s6-svscan or (if not supplied) its current directory.
A service directory generally contains at least a
run script, which may be as simple as:
#!/command/execlineb -P fdmove -c 2 1 myservice myarg
run files are written in a shell-ish language called
(Maybe the service scripts can be just sh scripts too?)
A service directory typically also contains a