S6-RC-SET-COMMIT(8)
π S6-RC-SET-COMMIT π
okay so bestie, welcome to s6-rc-set-commit β it's section 8 of the System Manager's Manual (the sysadmin side, iykyk), and it's genuinely one of the most satisfying little tools in the s6-rc family. buckle up π
β¨ NAME β¨
s6-rc-set-commit β compile a set of services, ensuring it is ready for installation. fr fr that's the whole job. π«Ά
πΈ SYNOPSIS πΈ
s6-rc-set-commit [-v verbosity] [-r repo] [-D defaultbundle]
[-h fdhuser] [-K] [-f] set
like, that's it. that's the whole invocation. slay. β¨
π¦ DESCRIPTION π¦
So here's the vibe: s6-rc-set-commit checks that no changes have occurred for set β the set of the repository repo β since the last commit, if any. (Cf. s6-rc-repo(7).)
It then goes through all the services in set that are not masked and makes a temporary source directory with them. It includes all the bundles defined in the stores, as long as none of the atomic services composing a bundle is masked. And if any service in a bundle is masked? That bundle simply does not appear in the database. periodt. π
It also makes an additional bundle, defaultbundle, based on the services' rxs:
- If a service is masked, it will not appear in the database at all, and neither will any bundle it's a part of. π
- If a service is latent, it will be included in the database, but not in defaultbundle.
- If a service is active or essential, it will be included in the database and in defaultbundle. π
Then it compiles the resulting temporary source directory, by calling s6-rc-compile(8), and stores the compiled database in the repository. the way it justβ¦ does all that π iconic.
π§ Notes
s6-rc-set-commitis essentially a wrapper arounds6-rc-compile(8), that translates a user-oriented view of services (βwhich services do I want available, and which do I want started at boot time?β), implemented via rxs, into the source format fors6-rc-compile(8), then builds the corresponding service database. lowkey genius.s6-rc-set-commitis the ultimate verification step for consistency. When it passes, the compiled set is ready fors6-rc-set-install(8). the final boss of vibe checks π₯
π OPTIONS π
-v verbosity,--verbosity=verbosityβ Be more or less verbose. The default is1, which means that error messages and warnings will be written to stderr.0means that only error messages will be written, and2or more adds informational messages. so like, pick your chatter level π¬-r repo,--repository=repoβ Use the repository in repo, which must exist. Default is/var/lib/s6-rc/repository. bestie it literally has to exist, no cap.-D defaultbundle,--default-bundle=defaultbundleβ This option specifies the name of the bundle that will contain all the active and essential services. It should be the name that is used to bring up the machine at boot time when invoking the βs6-rc changeβ command. The default isdefault. π-h fdhuser,--fdholder-user=fdhuserβ Specifies fdhuser as the user the fd-holder daemon will run at if the service database is installed and booted on. The default isroot, which is fine, but paranoid users may want to specify a non-root account. π valid honestly-K,--keep-oldβ If this option is given: if there is a previous compiled database for set set, it will be kept around. On sucess,s6-rc-set-commitwill print a line to stdout that is the path to the old compiled database. You can copy it with βcp -PRβ, move it with βmvβ or delete it with βrm -rβ. By default, old compiled databases are not kept β they're deleted when a new commit operation succeeds. ποΈ (yes, "sucess" is exactly how it's spelled in the original, I don't make the rules π )-f,--forceβ Force a new compilation even if a compiled database already exists for the set and it has not changed since the last commit. By default, when a compiled version of set exists and is more recent than the last change to the source version,s6-rc-set-commitnotices it and does nothing. it's giving "nothing to see here" energy π
π EXIT STATUS π
0β Success. slay! β¨1β The set failed to compile. π3β set was not found in the repository.100β Incorrect usage. bestie what did you type π102β Inconsistent repository.111β System call failed.
π SEE ALSO π
s6-rc-repo(7), s6-rc-compile(8), s6-rc-set-install(8)
This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6-rc/s6-rc-set-commit.html
π AUTHORS π
Laurent Bercot Carlos Eduardo <carana2099@gmail.com> (man page port)
and that's the whole page, bestie π«Ά this Debian build is dated January 24, 2026, ported with love from the System Manager's Manual β go forth and commit your sets, and remember: masked is masked, latent is shy, and essential gets the aux cord. mwah π
π¦ where this page comes from
- nixpkgs unstable: s6-rc 0.7.0.0
- nixpkgs unstable: s6-rc-man-pages 0.6.0.0.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms