aboutsummaryrefslogtreecommitdiffstats
s6-frontend: the s6 live command

The s6 command
s6-frontend
Software
skarnet.org

The s6 live command

s6 live groups actions that target the live machine state managed by the s6-rc service manager, hosted in the configured livedir.

Where s6 process directly targets instances of services supervised by s6-supervision, without knowledge of the service manager it can only address longruns. On the other hand, s6 live targets services defined in the current live database, oneshots as well as longruns, and will always respect the dependency graph.

Interface

     s6 live subcommand [ subcommand_options... ] [ args... ]
  • s6 l is accepted as an alias for s6 live.

Subcommands

help

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

status

Interface

     s6 live status [ -e | -E ] [ servicenames... ]
  • s6 live status servicenames... prints a line for every s6-rc service listed in servicenames. If servicenames is empty, then it prints a line for all the services present in the current live database.
  • Every line is: the name of the service, a slash character (/), then up or down depending on the current state of the service.
  • If the output is a terminal or you have specified --color=yes in the generic s6 options, and s6-frontend is built with util-linux support, then the output is pretty-printed instead of having a slash separate the name of the service from its state.

Options

-e, --without-essentials
Do not list essential services, which can clutter the display with irrelevant information and are all supposed to always be up anyway. This is the default.
-E, --with-essentials
List all services, including essential ones.

start

Interface

     s6 live start [ -n ] [ -t timeout ] servicenames...
  • s6 live start servicenames... brings up all the services defined in the current live database and listed by name in servicenames, as well as their dependencies.

Options

-n, --dry-run
Only print what would be done; do not actually start services.
-t timeout, --timeout=timeout
If the whole change still hasn't completed after timeout milliseconds, stop waiting and don't attempt to perform the remaining transitions. By default, timeout is 0, meaning infinite: the command can wait forever.

stop

Interface

     s6 live stop [ -n ] [ -t timeout ] servicenames...
  • s6 live stop servicenames... brings down all the services defined in the current live database and listed by name in servicenames, as well as services that depends on them.

Options

-n, --dry-run
Only print what would be done; do not actually stop services.
-t timeout, --timeout=timeout
If the whole change still hasn't completed after timeout milliseconds, stop waiting and don't attempt to perform the remaining transitions. By default, timeout is 0, meaning infinite: the command can wait forever.

restart

Interface

     s6 live restart [ -W | -w ] [ -t timeout ] [ servicenames... ]
  • s6 live restart servicenames... first brings down all the services defined in the current live database and listed by name in servicenames, as well as services that depends on them; then it brings back up all the services in servicenames.
  • If extra services have been brought down because they depend on a service listed in servicenames... but are not themselves in that list, they are not brought back up.

Options

-n, --dry-run
Only print what would be done; do not actually stop or start services.
-t timeout, --timeout=timeout
If the whole restart still hasn't completed after timeout milliseconds, stop waiting and don't attempt to perform the remaining transitions. By default, timeout is 0, meaning infinite: the command can wait forever.

start-everything

Interface

     s6 live start-everything [ -n ] [ -t timeout ] [ -D bundle ]
  • s6 live start-everything brings up all the services defined in the current live database and in the default bundle, i.e. the bundle of services that are enabled at boot time.

Options

-n, --dry-run
Only print what would be done; do not actually start services.
-t timeout, --timeout=timeout
If the whole change still hasn't completed after timeout milliseconds, stop waiting and don't attempt to perform the remaining transitions. By default, timeout is 0, meaning infinite: the command can wait forever.
-D bundle, --default-bundle=bundle
Start the bundle of services named bundle instead. The default is default, possibly overridden by the --with-default-bundle build-time configure option in s6-rc or s6-frontend.

stop-everything

Interface

     s6 live stop-everything [ -n ] [ -e | -E ] [ -t timeout ]
  • s6 live stop-everything brings down all the services, except essential services. This is not the command that can reboot a machine; for that, check s6 system.

Options

-n, --dry-run
Only print what would be done; do not actually stop services.
-e, --without-essentials
Do not stop essential services; keep the machine in a state where it can more or less run and be interacted with, even if in a completely bare state. This is the default.
-E, --with-essentials
Also stop essential services. After this command the machine isn't good for much except a reboot. s6 live stop-everything -E is the command that should be run right before a shutdown when the system is not using s6-linux-init. To that end, the line ::shutdown:/usr/bin/s6 live stop-everything -E should be added to /etc/inittab, if that is what the init uses.
-t timeout, --timeout=timeout
If the whole change still hasn't completed after timeout milliseconds, stop waiting and don't attempt to perform the remaining transitions. By default, timeout is 0, meaning infinite: the command can wait forever.

install

Interface

     s6 live install [ -b ] [ -K ] [ -f convfile ] [ --init ]
  • s6 live install installs the current working set of services, that has been crafted and committed via s6 set commands, replacing the current live service database.
  • The state of services defined in the old live database is preserved as much as possible, though services that are not defined in the new set are stopped before the live database is replaced.

Options

-b, --block
Block if something is currently holding the lock on the live service database. The default is to fail with an error message instead.
-K, --keep-old
Do not automatically delete the old service database after a successful switch. Instead, print its path to stdout.
-f convfile, --conversion-file=convfile
Use convfile as a conversion file for the underlying s6-rc-update invocation. This option should never be necessary if the services in the stores are properly managed.
--init
Copy the compiled database of the current working set to the place where it can be booted on, but do not call s6-rc-update. This is only useful for a first installation of s6-frontend, before s6-rc is managing live services. This option should never be used once a reboot has been performed and the machine is successfully running with s6-rc.