s6-rc
Software
skarnet.org

The s6-rc-set-install program

s6-rc-set-install installs a committed set of services, i.e. a compiled database, as the live database of the currently running system.

It is basically a wrapper around s6-rc-update.

Interface

     s6-rc-set-install [ -v verbosity ] [ -r repo ] [ -c bootdb ] [ -l livedir ] [ -f convfile ] [ -b ] [ -K ] set

Options

-v verbosity, --verbosity=verbosity
Be more or less verbose. The default is 1, which means that error messages and warnings will be written to stderr. 0 means that only error messages will be written, and 2 or more adds informational messages.
-r repo, --repository=repo
Use the repository in repo, which must exist. Default is /var/lib/s6-rc/repository.
-c bootdb, --bootdb=bootdb
Use bootdb as the path to the boot-time database. This must be the same path that is given to the -c option of s6-rc-init at boot time. The default is /etc/s6-rc/compiled/current. Note that bootdb must always be a symlink, pointing to the real compiled database at any time.
-l livedir, --livedir=livedir
Assume the live directory of the machine, as created by s6-rc-init, is livedir. The default is /run/s6-rc, but may have been changed at s6-rc build time with the --livedir configure argument.
-f convfile, --conversion-file=convfile
Specifies a conversion file to give to s6-rc-update. The default is not having a conversion file, which should be correct in most cases.
-b, --block
Pass the -b option to s6-rc-update, which makes it block rather than fail when the live database is currently being used by another program - typically when an s6-rc change transition is under way.
-K, --keep-old
If this option is given, the old live database, after it has been replaced, is kapt around, and s6-rc-set-install prints a line to stdout that is the path to that old database. It can e.g. be used by automation to keep the possibility of rollbacks. By default, s6-rc-set-install will delete the old live database after successfully updating to the new one.
--no-update
Only copy the database from the repository and link it as boot database; do not run s6-rc-update. This should only be used for a first installation, never when services are already managed with s6-rc — else it bypasses the check that the default enabled service set is actually viable, and might give an unpleasant surprise at next boot.

Exit codes

0
Success.
3
set was not found in the repository.
7
set was not up-to-date.
100
Incorrect usage.
102
Inconsistent repository.
111
System call failed.
Other codes
s6-rc-set-install can also exit with exit codes from s6-rc-update.

Notes