s6-rc: the s6-rc-repo-sync program
Keywords: s6-rc repo sync synchronization update set store repository

s6-rc
Software
skarnet.org

# The s6-rc-repo-sync program

s6-rc-repo-sync synchronizes a repository, which means making an up-to-date reference database, and ensuring that all defined sets include all the services in the repository's stores, and only them.

## Interface

         s6-rc-repo-sync [ -v verbosity ] [ -r repo ] [ -h fdhuser ]

- s6-rc-repo-sync looks at all the services defined in the repository's stores, and compiles them into a reference database.
- It then looks at all the sets and synchronizes them with the services in all the stores:
  - Existing services are preserved as they are.
  - If a service doesn't appear in the stores, it is removed from all sets.
  - If a new service is defined in the stores, it is added to all sets. Services with the essential flag are added to the `always` rx; services with the recommended flag are added to the `active` rx; others are added to the `usable` rx.
- 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. The option is also passed to commands that s6-rc-repo-sync may call, such as s6-rc-compile, so their verbosity will be similarly adjusted.
-r repo, --repository=repo
  Use the repository in repo, which must exist. Default is /var/lib/s6-rc/repository.
-h fdhuser, --fdholder-user=fdhuser
  You can safely ignore this option and forget about it. What it does is ensure that if a supervision tree is started as root on a compiled database produced by this command, the fd-holder daemon in that supervision tree runs as fdhuser rather than root. (It is okay to run that daemon as root.)

## Exit codes

0
  Success.
1
  Failure. Either the services in the listed stores do not make a consistent reference database, or some set is inconsistent. With a nonzero verbosity, the error messages from s6-rc-compile will be displayed and detail exactly what went wrong.
100
  Incorrect usage.
111
  System call failed. This usually signals an issue with the underlying operating system.

## Notes

- s6-rc-repo-sync should be called when the contents of the stores have changed, for instance when the package manager has added packages that define new services.