s6-rc
Software
skarnet.org
The s6-rc-set-change program
s6-rc-set-change modifies a set by changing
the rx of some services.
Interface
s6-rc-set-change [ -v verbosity ] [ -r repo ] [ -E | -e ] [ -n ] [ -f ] [ -I | -i ] [ -P | -p ] set newrx services...
- s6-rc-set-change operates on set set in repository repo.
- It attempts to move all the services listed in services... into rx newrx.
- It exits 0.
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.
- -E, --no-force-essential
- If a service needs to be moved to/from the always rx, fail and report
an error. This is the default. Services marked as always are normally defined
in the stores with flag-essential, and inconsistencies between essential
services should be resolved in the stores.
- -e, --force-essential
- Move services to/from the always rx if they need to be. This option
should only be used temporarily until the store inconsistency is fixed. Be aware that
moving a service from always to usable or masked may
result in an unbootable set.
- -n, --dry-run
- Check whether the command would succeed, print warning or error messages if
appropriate, but do not perform the actual modifications.
- -I, --no-fail-on-dependencies
- Do not fail if a dependency is found. Depending on the -P or -p
flag, either print a warning message and proceed to make an inconsistent set, or pull the
dependency into the change. This is the default.
- -i, --fail-on-dependencies
- If a dependency is found that would create an inconsistent set if the change was
applied, print an error message and exit 1.
- -P, --no-pull-dependencies
- If a dependency is found that would create an inconsistent set if the change was
applied, print a warning message (if verbosity is not 0) listing the services that
also need to change prescriptions; then apply the change anyway. This is the default.
- -p, --pull-dependencies
- If a dependency is found that would create an inconsistent set, automatically
extend the change to the dependencies as well so the set remain consistent. Print an
informational message (if verbosity is 2 or more) listing the services that are being
pulled into the change, then apply the change.
Exit codes
- 0
- Success.
- 1
- The -I option was given and dependencies prevented services...
from being changed to newrx.
- 3
- A service in services... was not found in the reference database.
- 4
- Invalid or corrupted reference database.
- 100
- Incorrect usage.
- 102
- Inconsistent repository.
- 111
- System call failed.
Notes
- s6-rc-set-change is the bread and butter of repo operations. It is how users
can tailor the set of services they want to be enabled at boot time.
- Once a change has been effected, and the command says that the set is consistent,
it can be committed.
- If you are masking or unmasking services, and you see it pulling services that
are not dependencies of the service you're unmasking or are not depending on the service
you're masking, it is because these services are part of the same pipeline. If you mask
a part of a pipeline, the whole pipeline needs to be masked.