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.
