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 ] [ -c ] [ -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.
-c, --clean
If there are services that were pulled, i.e. started by way of the dependency engine without being explicitly listed in the arguments of an s6 live start command (or in the default bundle for the services started at boot), and the explicit services that pulled them have been stopped, stop the pulled services as well.
-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.

reload

Interface

     s6 live reload [ -n ] [ -t timeout ] servicenames...
  • s6 live reload servicenames... reloads the services defined in the current live database and listed by name in servicenames.
  • Reloading means:
    • if the service is a longrun: sending a SIGHUP, or the signal defined in the service directory's down-signal file, to the process.
    • if the service is a oneshot: executing the reload script defined for it.
    • s6 live reload only applies to the listed services. It does not touch dependencies. It does not change service states: if a service is down, reload has no effect, and if a service is up, it is still up after reloading.

    Options

    -n, --dry-run
    Only print what would be done; do not actually reload services.
    -t timeout, --timeout=timeout
    If a reload script still hasn't completed after timeout milliseconds, stop waiting for it and consider the reload a failure. 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.

    reset

    Interface

         s6 live reset [ -n ] [ -t timeout ] [ -D bundle ]
    
    • s6 live reset brings up all the services in the default bundle and brings down all the services that are not in it. In other words, it resets the machine state to what it was right after booting.

    Options

    -n, --dry-run
    Only print what would be done; do not actually change service states.
    -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
    Align to 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 ] [ -s setname ] [ --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.
    -s setname, --set=setname
    Install the compiled set named setname. Default is current.
    --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.