runit - service dependencies

runit's service supervision resolves dependencies for service daemons
designed to be run by a supervisor process automatically.
The service daemon (or the corresponding run scripts) should behave
as follows:

before providing the service, check if all services it depends on are
available.
If not, exit with an error, the supervisor will then try again.

write all logs through runit's logging facility.
The runsv program takes care that all logs for
the service are written safely to disk.
Therefore there's no need to depend on a system logging service.

optionally when the service is told to become down, take down other
services that depend on this one after disabling the service.