aboutsummaryrefslogtreecommitdiffstats
s6-rc: the s6-rc-bundle program

s6-rc
Software
skarnet.org

The s6-rc-bundle program

s6-rc-bundle is a tool to add or delete bundles from a compiled service database without having to recompile it from source.

It is an offline tool, i.e. you can run it on any compiled service database without actually having a live set of services managed by s6-rc. However, if you do have a live set, you can still run s6-rc-bundle on the current database (and it is the default); it won't interfere with your normal service operation.

Interface

     s6-rc-bundle help
     s6-rc-bundle [ -f ] [ -l live ] [ -c compiled ] [ -b ] add bundlename contents...
     s6-rc-bundle [ -f ] [ -l live ] [ -c compiled ] [ -b ] delete bundlenames...
     s6-rc-bundle [ -f ] [ -l live ] [ -c compiled ] [ -b ] multiple args...
  • s6-rc-bundle expects to find a compiled service database in compiled; by default it uses the service database used by the live state in live.
  • Depending on the arguments, it adds a bundle definition to this database, or deletes a bundle definition from it, or performs multiple additions/deletions.

Options

  • -c compiled : operate on a compiled service database in compiled instead of the current live one.
  • -l live : assume the live state is in live. This option is ignored if the -c option has been given. Default is /run/s6-rc. The default can be changed at package compilation time, by giving the --livedir=live option to ./configure.
  • -f : force. s6-rc-bundle will not complain when given a nonexisting name to delete (it will do nothing), or when given an existing name to add (it will replace the definition). By default, s6-rc-bundle will complain and exit when asked to delete a nonexistent name or to add an existing name.
  • -b : blocking lock. If the database is currently being used by another program, s6-rc-bundle will wait until that other program has released its lock on the database, then proceed. By default, s6-rc-bundle fails with an error message if the database is currently in use.

Exit codes

  • 0: success
  • 1: identifier already exists in service database
  • 3: identifier not found in service database
  • 4: invalid or corrupted service database
  • 5: wrong identifier type for the given command
  • 100: wrong usage
  • 111: system call failed

Subcommands

s6-rc-bundle help

Prints a help message on stdout.

s6-rc-bundle add bundlename contents...

Adds a bundle named bundlename to the database, representing the services listed in contents. The arguments in contents... are resolved before the database is modified by the s6-rc-bundle invocation.

s6-rc-bundle delete bundlenames...

Deletes bundles listed in bundlenames....

s6-rc-bundle multiple args...

Performs multiple bundle deletions and additions. This subcommand is best used in an execline script, because it uses blocks.

args... is composed of:

  • One block listing bundle names that will be deleted from the database.
  • Zero or more addition definitions, each of them composed of:
    • One argument that is the name of the bundle to add
    • One block listing the services contained in the new bundle. The names in the block are resolved before any addition or deletion is made to the database.