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
- s6-rc-set-install checks that the set of services set
has been committed and that no changes have occurred since.
- It takes the corresponding service database and copies it to the same directory as bootdb.
- It calls s6-rc-update on that copy of the compiled service
database, which makes it the new live database. Some services may be stopped, and
other started, in the process.
- It updates the bootdb link to point to the new database, so that
next boot uses it.
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
- s6-rc-set-install is a simple wrapper around s6-rc-update
that ties the repo commands and the way they manage service sets with the
basic operation of the s6-rc engine.