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 -Eis 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 -Eshould 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.
