How to upgrade s6
Keywords: s6 installation upgrade

s6
Software
skarnet.org

# What has changed in s6

## in 2.11.3.2

- skalibs dependency bumped to 2.13.1.1.
- execline recommended dependency bumped to 2.9.3.0.

## in 2.11.3.1

- execline recommended dependency bumped to 2.9.2.1.

## in 2.11.3.0

- skalibs dependency bumped to 2.13.1.0.
- nsss optional dependency bumped to 0.2.0.3.
- execline recommended dependency bumped to 2.9.2.0.
- New s6-svc command: `-Q`.

## in 2.11.2.0

- skalibs dependency bumped to 2.13.0.0.
- nsss optional dependency bumped to 0.2.0.2.
- execline recommended dependency bumped to 2.9.1.0.
- New feature: implementation of instances.
- New s6-svc commands: `-D` and `-U`.

## in 2.11.1.2

- execline optional dependency bumped to 2.9.0.1.

## in 2.11.1.1

- skalibs dependency bumped to 2.12.0.0.
- execline optional dependency bumped to 2.9.0.0.

## in 2.11.1.0

- skalibs dependency bumped to 2.11.2.0.
- execline optional dependency bumped to 2.8.3.0.

## in 2.11.0.1

- skalibs dependency bumped to 2.11.1.0.
- nsss optional dependency bumped to 0.2.0.1.
- execline optional dependency bumped to 2.8.2.0.

## in 2.11.0.0

- skalibs dependency bumped to 2.11.0.0.
- nsss optional dependency bumped to 0.2.0.0.
- execline optional dependency bumped to 2.8.1.0.
- s6-svwait now supports the `-r` and `-R` options, to wait for service restarts.
- The `s6/lock.h`, `s6/supervise.h` and `s6/fdholder.h` headers replace their previous versions that had an extra `s6` prefix.
- New binaries: s6-svlink, s6-svunlink, and s6-socklog.

## in 2.10.0.3

- skalibs dependency bumped to 2.10.0.3.
- execline dependency bumped to 2.8.0.1.

## in 2.10.0.2

- skalibs dependency bumped to 2.10.0.2.
- execline dependency bumped to 2.7.0.1.

## in 2.10.0.1

- skalibs dependency bumped to 2.10.0.1.

## in 2.10.0.0

- skalibs dependency bumped to 2.10.0.0.
- nsss optional dependency bumped to 0.1.0.0.
- execline dependency bumped to 2.7.0.0.
- Commands received by s6-svscan and sent by s6-svscanctl have changed significantly. Different semantics of SIGHUP for s6-svscan.
- Commands received by s6-supervise and sent by s6-svc have changed slightly (no `s6-svc -X` anymore). Different semantics of SIGHUP and SIGQUIT for s6-supervise.
- s6-supervise now handles SIGINT appropriately, by forwarding it to its child's process group.
- The `nosetsid` file is not recognized anymore in service directories. s6-supervise now always starts it child as a session leader.
- Split permissions on service control are now officially supported. New binary: s6-svperms.
- New program that creates service directories to run a supervision tree managed by a user: s6-usertree-maker.

## in 2.9.2.0

- skalibs dependency bumped to 2.9.2.1.
- execline dependency bumped to 2.6.0.1.
- New `-d` option to s6-sudod.

## in 2.9.1.0

- skalibs dependency bumped to 2.9.2.0.
- execline dependency bumped to 2.6.0.0. (And made optional, see below.)
- The execline dependency is now optional, and can be disabled via the `--disable-execline` option to configure. Functionality that depends on execline in s6 binaries is disabled when execline support is disabled.
- A new '?' directive has been added to s6-log, it declares a processor command line that is spawned with the `/bin/sh` interpreter.
- A new `-X` option has been added to s6-svscan to better support s6-linux-init installations.
- s6-svscan now handles SIGPWR and SIGWINCH, when diverted, on systems that define those signals.

## in 2.9.0.1

- skalibs dependency bumped to 2.9.1.0.
- execline dependency bumped to 2.5.3.0.

## in 2.9.0.0

- skalibs dependency bumped to 2.9.0.0.
- execline dependency bumped to 2.5.2.0.
- All the `s6-fdholder-*c` binaries have been removed.

## in 2.8.0.1

- skalibs dependency bumped to 2.8.1.0.

## in 2.8.0.0

- skalibs dependency bumped to 2.8.0.0.
- execline dependency bumped to 2.5.1.0.
- New `-d notif` option to s6-log.
- New default for the `-l linelimit` option to s6-log: 8192 bytes.
- In the accessrules library, checking against uid/gid now checks the `uid/self` key if the client and the server have the same uid, and the `gid/self` key if the client and the server have the same gid.
- Everything now builds as PIC by default no matter the toolchain's settings. Use the `--disable-all-pic` configure option to build executables and static libraries as non-PIC.
- This is a major version release of s6. It is recommended to first stop all your s6 services, then upgrade, then immediately restart your supervision tree, then start your services again. Failure to do so *will* cause issues if you're relying on s6-ftrigrd notifications (which is the case, for instance, with services managed by s6-rc).

## in 2.7.2.2

- No functional changes.

## in 2.7.2.1

- No functional changes.

## in 2.7.2.0

- Optional nsss support added.
- skalibs dependency bumped to 2.7.0.0.
- execline dependency bumped to 2.5.0.1.
- `-B` option added to s6-ipcserver-socketbinder.
- `-d notif` option added to s6-svscan.
- New optional `./down-signal` file in a service directory, to tell s6-supervise to use another signal than SIGTERM when bringing the service down.
- New `-r` option added to s6-svc, to restart the service via the signal defined in `./down-signal`.

## in 2.7.1.1

- No functional changes.

## in 2.7.1.0

- skalibs dependency bumped to 2.6.4.0.
- New commands: s6-svdt, s6-svdt-clear, s6-permafailon
- s6-tai64nlocal can now print GMT times with the `-g` option.

## in 2.7.0.0

- skalibs dependency bumped to 2.6.3.0.
- s6lockd and s6-ftrigrd now use the new `textclient` API and ABI from skalibs, instead of the more generic `skaclient`. This is cleaner, faster code. (s6-fdholderd still uses skaclient, since its point is to transmit file descriptors, which textclient does not support.)

## in 2.6.2.0

- skalibs dependency bumped to 2.6.2.0.
- execline dependency bumped to 2.3.0.4.
- New s6_fdholder functions: s6_fdholder_start(), s6_fdholder_end().

## in 2.6.1.1

- skalibs dependency bumped to 2.6.0.1.
- execline dependency bumped to 2.3.0.3.

## in 2.6.1.0

- Additions of a few interfaces to libs6 in order to fix a race condition in s6-rc.
- New program: s6-notifyoncheck.

## in 2.6.0.0

- skalibs dependency bumped to 2.5.1.1.

## in 2.5.1.0

- skalibs dependency bumped to 2.5.1.0.
- execline dependency bumped to 2.3.0.1.
- s6-ftrig-listen1 prints the last event it received to stdout.
- The `timeout-kill` file is now recognized in a service directory and allows s6-svc -d to send a SIGKILL after a timeout if the process is still not dead after the initial SIGTERM and SIGCONT.

## in 2.5.0.0

- skalibs dependency bumped to 2.5.0.0.
- execline dependency bumped to 2.3.0.0.
- Services can now report permanent failure by having `./finish` exit 125.
- s6-svwait, s6-svlisten and s6-svlisten1 now exit 99 when they time out. They exit n when there are n services reporting permanent failure.

## in 2.4.0.0

- skalibs dependency bumped to 2.4.0.0.
- execline dependency bumped to 2.2.0.0.
- s6-ipcserver-socketbinder can now create datagram sockets.

## in 2.3.0.0

- skalibs dependency bumped to 2.3.10.0.
- execline dependency bumped to 2.2.5.0.
- s6-svscan now defaults to `-t0` instead of `-t5000`.

## in 2.2.4.3

- skalibs dependency bumped to 2.3.9.0.

## in 2.2.4.2

- No functional changes

## in 2.2.4.1

- s6-envuidgid behaviour fixed to be compatible with 2.2.3.1 and previous releases.

## in 2.2.4.0

- Additional options to s6-envuidgid for more flexibility
- skalibs dependency bumped to 2.3.8.3.
- execline dependency bumped to 2.1.4.5.

## in 2.2.3.1

- No functional changes

## in 2.2.3.0

- Processor scripts for s6-log now switch their working directory to the logdir they process.
- skalibs dependency bumped to 2.3.8.2.
- execline dependency bumped to 2.1.4.4.

## in 2.2.2.2

- No functional changes

## in 2.2.2.1

- No functional changes

## in 2.2.2.0

- s6-svscan now supports the `-s` option for configurable signal management.
- GNU make dependency pushed back to 3.81.
- skalibs dependency bumped to 2.3.8.0.
- execline dependency bumped to 2.1.4.2.

## in 2.2.1.1

- skalibs dependency bumped to 2.3.7.1.
- execline dependency bumped to 2.1.4.1.

## in 2.2.1.0

- skalibs dependency bumped to 2.3.7.0.
- execline dependency bumped to 2.1.4.0.
- s6-svc, s6-svlisten1 and s6-svlisten support new `-wr` and `-wR` options.

## in 2.2.0.1

- skalibs dependency bumped to 2.3.6.1.
- execline dependency bumped to 2.1.3.1.

## in 2.2.0.0

- skalibs dependency bumped to 2.3.6.0.
- execline dependency bumped to 2.1.3.0.
- The internals of s6-supervise have changed; the `supervise/status` file ABI has changed and is not compatible with the daemontools/runit `supervise/status` files anymore. (This should not impact anything.)
- s6-supervise features a configurable timeout for `./finish` scripts, via the `./timeout-finish` file.
- s6-svwait, s6-svlisten1 and s6-svlisten can now wait for a `'D'` event, which means the `./finish` script has terminated.
- The deprecated `s6-notifywhenup` program has been removed.
- The syntax for synchronous s6-svc waiting has changed.

## in 2.1.6.0

- s6-svc now checks for the existence of `notification-fd` before accepting a `U` command.
- New `-X` option to s6-svc.
- Different meaning of SIGQUIT for s6-supervise: now the same as `s6-svc -X`.

## in 2.1.5.0

- s6-log now exits cleanly on SIGHUP.

## in 2.1.4.0

- skalibs dependency bumped to 2.3.5.1.
- execline dependency bumped to 2.1.2.2.
- The s6-notifywhenup command has been deprecated. Race-free readiness notification can now be implemented via the `notification-fd` file in a service directory.

## in 2.1.3.0

- skalibs dependency bumped to 2.3.2.0.
- execline dependency bumped to 2.1.1.0.
- New options to s6-envuidgid.

## in 2.1.2.0

- New options to s6-setsid.

## in 2.1.1.2

- skalibs dependency bumped to 2.3.1.0.
- execline dependency bumped to 2.1.0.0.
- Apart from that, this is a bugfix release. (The bump in dependencies is part of the bugfix.)

## in 2.1.1.1

Bugfix release, no important changes.

## in 2.1.1.0

- skalibs dependency bumped to 2.3.0.0.
- execline dependency bumped to 2.0.2.1.
- New functionality added to s6-log. Its syntax has been extended; some options are now marked as obsolescent.
- Access control instated in s6-fdholderd for listing

## in 2.1.0.1

Bugfix release, no important changes.

## in 2.1.0.0

- skalibs dependency bumped to 2.2.1.0.
- execline dependency bumped to 2.0.2.0.
- Unix domain socket utilities moved from the s6-networking package to s6.
- `./finish` argument for "service crashed" is now 256 instead of 255. Check your finish scripts!
- `supervise/status` now includes wstat information when the service died, and s6-svstat reports that information.
- s6-svstat now reports symbolic signal information by default, use `-n` to get the old behaviour.
- s6-log now properly calls execlineb with its installation prefix, in the slashpackage case.
- New commands: s6-svlisten and s6-svlisten1, to signal a service and wait on it without race condition.
- A brand new set of programs, `s6-fdholder*`, to perform fd-holding.
- Catchy blurb on intro page.

## in 2.0.1.0

- skalibs dependency bumped to 2.2.0.0.
- execline dependency bumped to 2.0.1.1.
- Better readiness notification management via s6-svwait -U.

## in 2.0.0.1

- skalibs dependency bumped to 2.1.0.0.

## in 2.0.0.0

- The build system has completely changed. It is now a standard `./configure && make && sudo make install` build system. See the enclosed INSTALL file for details.
- slashpackage is not activated by default.
- shared libraries are not used by default.
- skalibs dependency bumped to 2.0.0.0.
- execline dependency bumped to 2.0.0.0.
- s6-supervise does not create the `./event` fifodir as public. Subscriptions are restricted to users having the same gid as the s6-supervise process.
- The s6-notifywhenup program is a new addition.