s6-frontend
Software
skarnet.org

The s6 program

s6 is a generic command-line utility that can be used to interact with a system managed by the s6 process supervision system, the s6-rc service manager, and optionally the s6-linux-init boot program.

Interface

     s6 [ global_options... ] command subcommand [ subcommand_options... ] [ args... ]

Exit codes

s6 always exits 0 on success, 100 on bad usage, and 111 on a system call failure.

It is difficult to exhaustively list all of the possible exit codes since it can exec into a wide variety of commands belonging to different parts of the s6 family of programs. However, in case of an error, the name of the subprogram where the error occurred is always printed on stderr; you can then consult the documentation for said subprogram, which will have the explanation for all its exit codes. For instance, if an invocation of s6 prints a message such as s6-rc: fatal: unable to start service foobar, it means that s6 invoked the s6-rc command, and on the linked documentation page you can find the interpretation of its various exit codes.

Environment variables

Global options

global_options... is a list of options that modify s6's behaviour and policies. They should generally not be used; instead, the behaviour should be set in the configuration file. Nevertheless, if you need to override the configuration file settings for some reason, here you go.

-h, --help
Run the s6 help command. Any given command or subcommand is ignored.
-V, --version
Run the s6 version command.
Any given command or subcommand is ignored.
-s scandir, --scandir=scandir
Use scandir as scan directory (i.e. the directory where s6-svscan runs and supervises service directories).
-l livedir, --livedir=livedir
Use livedir as live directory (i.e. the directory where s6-rc keeps tabs on the machine state and stores its runtime information).
-r repodir, --repodir=repodir
Use repodir as s6-rc repository (i.e. the directory where the repo commands of the s6-rc package store and manipulate their service sets).
-c bootdb, --bootdb=bootdb
Use bootdb as the name of the compiled service database used by s6-rc at boot time (i.e. the directory where the s6-rc reads information on how to start all the wanted services).
--stmpdir=stmpdir
Use stmpdir to store runtime s6-frontend data and temporary files.
--storelist=storelist
Use storelist as list of stores.
-v verbosity, --verbosity=verbosity
Use verbosity as numerical verbosity value.
--color=yes|no|auto
Use fancy output (which may or may not involve color): always if yes, never if no, and only when stdout is a terminal if auto. Not all commands and subcommands will use this setting. Also, for pretty-printing of columns, it is recommended to have built s6-frontend with util-linux support.

Commands

help

s6 help prints a short help message summarizing the options and usage of the s6 command. It is not as detailed as this page.

No subcommands are defined.

version

s6 version prints the current version of s6-frontend, on one line.

No subcommands are defined.

process

s6 process sends commands to long-running processes supervised by the s6 supervision suite. The details are available here.

s6 process is typically used when a daemon needs to be restarted or otherwise addressed without involvement from the service manager, i.e. without having to start or stop dependencies.

live

s6 live controls the live state of the machine, starting and stopping services, installing a new set of services, etc. It is mostly an interface around the s6-rc service manager. The details are available here.

repository

s6 repository groups administrative tasks related to the repository of service sets, typically synchronization with the service stores when the package manager updates service definitions. It is not often directly used by sysadmins, but is an essential part of distribution scripts, when they create the initial layout, run their package manager, etc.

The details are available here.

set

s6 set is the interface to the creation and manipulation of service sets by the user. It is how they define what service will be enabled or disabled at boot time. This manipulation occurs offline: service sets being worked on are distinct from the live state of the machine, accessible via s6 live commands.

The details are available here.

system

s6 system provides commands to run at boot and, on systems fully managed by s6, to shut the system down. The details are available here.

Notes