s6 and s6-rc Init
Created on 2021-01-30T20:02:47-06:00
the difference between runit or s6 and using s6-rc is orchestration. a dependency database is used to track which services depend on others, so they can be started in parallel more efficiently.
- ---
s6-svscan: runs against a directory of service directories and starts subordinate s6-supervise processes
s6-supervise: runs against a service directory by spawning run, then eventually spawning finish when run dies.
s6-rc is based on a service database. you have to compile the database from a service directory and then activate it by launching s6-rc-init.
calls to s6-rc itself to change the set of running services looks at this database to determine which other services should be started or stopped.
s6-rc-compile: scans service directories and compiles a database
s6-rc-update: replaces the service database with a new one without rebooting