S6_LIVE(8)

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

SYNOPSIS
s6 live subcommand [subcommand_options...] [args...]

DESCRIPTION
s6 live groups actions that target the live machine state managed by the s6-rc[1] service manager, hosted in the configured (cf. s6-frontend.conf(5)) livedir.

Where s6_process(8) directly targets instances of services supervised by s6-supervision[2], 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.

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’ 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

    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
        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, --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[1] or s6-frontend[3].

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(8).

    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
        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(8) 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(8) 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(8). 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.

SEE ALSO
s6-frontend.conf(5), s6-frontend-overview(7), s6-rc-update(8), s6_process(8), s6_set(8), s6_system(8)

[1] https://skarnet.org/software/s6-rc/

[2] https://skarnet.org/software/s6/

[3] https://skarnet.org/software/s6-frontend/

This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6-frontend/s6_live.html

AUTHORS
Laurent Bercot Lennart Jablonka <humm@ljabl.com> (man page port)