S6-RC-SET-FIX(8)

NAME
s6-rc-set-fix - check one or more sets of services for dependency inconsistencies, and fix them

SYNOPSIS
s6-rc-set-fix [-v verbosity] [-r repo] [-u | -d] [-E | -e] [-n] [sets...]

DESCRIPTION
s6-rc-set-fix checks all the sets listed in sets... for dependency inconsistencies that may prevent s6-rc-set-commit(8) from succeeding. If sets... is empty, all the sets in the repository are checked.

s6-rc-set-fix prints what it finds and changes the rxs of impacted services so the resulting set is consistent.

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. Dependency inconsistencies are warnings, so will be displayed at the default level (but not at 0); more details can be obtained by increasing the verbosity.

-r repo, --repository=repo
    Use the repository in repo, which must exist. Default is /var/lib/s6-rc/repository.

-u, --fix-up
    When a dependency inconsistency is found, fix it by bringing in more services into the starting bundle. If ‘B’ depends on ‘A’, ‘B’ is active but ‘A’ is only usable or even masked, fix the situation by making ‘A’ active. This means that more services will be started at boot time than the set initially declared.

-d, --fix-down
    When a dependency inconsistency is found, fix it by bringing in fewer services into the starting bundle. If ‘B’ depends on ‘A’, ‘B’ is active but A is only usable or even masked, fix the situation by making ‘B’ usable ( if ‘A’ is usable) or masked ( if ‘A’ is masked). This means that fewer services will be started at boot time than the set initially declared. This is the default.

-E, --no-force-essential
    If fixing a dependency inconsistency would imply moving a service down from the always rx, or up to the always rx, when its service definition directory does not declare it as essential, do not attempt fixing it and fail the operation. This is the default. If such a situation occurs, it means that the set of services provided in the stores is not consistent, and that is what should be fixed.

-e, --force-essential
    If fixing a dependency inconsistency would imply moving a service down from the always rx, or up to the always rx, when its service definition directory does not declare it as essential, do it, even though it goes against a service definition in a store. This can help you keep a service set consistent until the store is fixed.

-n, --dry-run
    Check for inconsistencies, but only print what would be needed to fix the set; do not perform the fix.

EXIT STATUS

0   Success.

1   A needed modification could not be made because the -e option was not given.

100 Incorrect usage.

102 Inconsistent repository.

111 System call failed.

SEE ALSO
s6-rc-repo(7), s6-rc-set-commit(8)

This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6-rc/s6-rc-set-fix.html

AUTHORS
Laurent Bercot Carlos Eduardo <carana2099@gmail.com> (man page port)