Changelog for s6. In 2.12.0.1 ----------- - Bugfixes. In 2.12.0.0 ----------- - New option to s6-svc: -s, to specify a signal by name (or number). - New option to s6-log: -t, to specify a timeout for partial last lines. - s6-svscan rewrite: no more quadratic reaps, no more forced 1s wait on shutdown - Eliminated fork() wherever possible on systems supporting posix_spawn() - Obsolete s6lockd subsystem removed. In 2.11.3.2 ----------- - Dependency fixes. In 2.11.3.1 ----------- - Resource limit shenanigans. In 2.11.3.0 ----------- - Bugfixes. - Internal changes to instances and servicedir reserved names. - New s6-svc -Q command. - -0167 options to s6-ioconnect are now deprecated. In 2.11.2.0 ----------- - Adaptation to skalibs-2.13.0.0. - Bugfixes. - New s6-svc -D and s6-svc -U commands. - The name of the service is now passed as an argument to ./run and as the third argument to ./finish. - The 1-second service restart delay can now only be skipped when the service is ready. - New s6-log directive: p, to set a log line prefix. - Implementation of instances! New programs: s6-instance-maker, s6-instance-create, s6-instance-delete, s6-instance-control, s6-instance-status, s6-instance-list. In 2.11.1.2 ----------- - Bugfixes. In 2.11.1.1 ----------- - Adaptation to skalibs-2.12.0.0. In 2.11.1.0 ----------- - Bugfixes. - s6-applyuidgid and s6-setuidgid can now be used by non-root users. - New s6-envdir option: -L, for unlimited size environment variables. In 2.11.0.1 ----------- - Bugfixes. In 2.11.0.0 ----------- - Adaptation to skalibs-2.11.0.0. - Bugfixes. - s6-svwait now supports -r and -R options to wait for restarts. - New service directory file: lock-fd, to take a lock before starting a service, protecting against concurrent instances. - s6/lock.h, s6/supervise.h, s6/fdholder.h: simpler header names - New binaries: s6-svlink, s6-svunlink - s6-ioconnect bugfix; does not support zero-copy anymore. In 2.10.0.3 ----------- - Bugfixes. In 2.10.0.2 ----------- - Bugfixes. In 2.10.0.1 ----------- - Bugfixes. In 2.10.0.0 ----------- - Bugfixes. - Changes to s6-svscan and s6-svscanctl: the list of commands that can be sent to s6-svscan has been thoroughly cleaned up. s6-svscan now scans and prunes on SIGHUP. - Changes to s6-supervise and s6-svc: -X not supported anymore, nosetsid not supported anymore. SIGHUP now properly closes stdin/stdout to allow the service to naturally exit on EOF; SIGQUIT semantics changed to immediately bail. SIGINT is now trapped and forwarded to the service's process group. - New binary: s6-svperms, implementing a split permissions model. (By default, everything is the same as before.) - New binary: s6-usertree-maker, creating service directories for supervision trees managed by users. In 2.9.2.0 ---------- - Bugfixes. - New -d option to s6-sudod. In 2.9.1.0 ---------- - Bugfixes. - execline support is now optional. Some functionality is not available when execline support is disabled. - New '?' directive to s6-log, to spawn a processor with /bin/sh. - New console holder functionality for easier s6-svscan-log support. - On systems that define SIGPWR and SIGWINCH, s6-svscan -s now calls a user handler for those signals. In 2.9.0.1 ---------- - Bugfixes. In 2.9.0.0 ---------- - Bugfixes. - Adaptation to skalibs-2.9.0.0. - The s6-fdholder-*c programs have been removed. They were unused: the separation between (for instance) s6-fdholder-store and s6-fdholder-storec added more complexity and more code than it brought benefits. The s6 package is now 7 binaries leaner. In 2.8.0.1 ---------- - Bugfixes. In 2.8.0.0 ---------- - Bugfixes. - Adaptation to skalibs-2.8.0.0. - s6-log can now notify readiness with the new -d option. - s6-log now has a default line limit of 8 kB. - In the accessrules library, checking against uidgid 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. That means s6-ipcserver-access can now be configured to allow/deny/specialcase connections where the client's credentials are the same as the server's. - Everything builds as PIC by default. In 2.7.2.2 ---------- - Bugfixes. In 2.7.2.1 ---------- - Bugfixes. In 2.7.2.0 ---------- - s6-ipcserver-socketbinder now takes a -B option to make the socket blocking. - s6-svscan now takes a "-d notif" option to notify readiness. This is *shallow readiness*, i.e. readiness will be reported when s6-svscan is ready to receive s6-svscanctl commands; it does *not* mean all the services started at s6-svscan launch will be ready. - New optional file in a service directory: down-signal. It allows you to customize the signal sent by s6-svc -d (and now s6-svc -r too). - New s6-svc option: -r. Sends the signal defined in the down-signal file (still SIGTERM by default). - Adaptation to skalibs-2.7.0.0. - Optional nsss support added. In 2.7.1.1 ---------- - Bugfixes. In 2.7.1.0 ---------- - Bugfixes. - s6-svwait et al. now exit 102 instead of hanging if s6-supervise dies. - 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 ---------- - Bugfixes. - s6-ftrigrd and s6lockd internally use the textclient API/ABI instead of skaclient. This is cleaner, faster code. - New "-a perms" option to s6-ipcserver and s6-ipcserver-socketbinder. In 2.6.2.0 ---------- - Bugfixes. - New functions: s6_fdholder_start() and s6_fdholder_end(). In 2.6.1.1 ---------- - Bugfixes. In 2.6.1.0 ---------- - Bugfixes. - Addition of the s6_svc_lock_take() and s6_svc_lock_release() functions, to fix a race condition in s6-rc. - New program: s6-notifyoncheck, to implement polling for readiness and reroute the result into the s6 readiness notification mechanism. In 2.6.0.0 ---------- - Bugfixes. One of the bugfixes required a visible ABI change, which explains the major version bump. - Documentation fixes. In 2.5.1.0 ---------- - Bugfixes. - s6-ftrig-listen1 now prints to stdout the last event (the last byte) it received and made it match the regexp it was given. - s6-supervise now recognizes the "timeout-kill" file in a service directory. If this file exists and contains a nonzero integer t, the behaviour of a "s6-svc -d" command is changed from "send a SIGTERM and a SIGCONT" to "send a SIGTERM and a SIGCONT, then if the service is still not dead after t milliseconds, send a SIGKILL". In 2.5.0.0 ---------- - Added this NEWS file. :) - Major types overhaul to make them more POSIXly correct: compatibility with skalibs-2.5.0.0. - Services can now report permanent failure by having a ./finish script exit 125. - s6-svwait, s6-svlisten and s6-svlisten1 now exit the number of services that reported permanent failure. They exit 99 on timeout. - When a service has a ./nosetsid file that contains "setpgrp", it is run in a new process group, but not in a new session. If the ./nosetsid file contains anything else, the service is run in the same session and process group as the supervisor, and if there is no such file, it's run in a new session (same behaviour as before). - s6-log now writes a warning to stderr when it closes the stdout stream. - s6-log's individual file size limit bumped to 256 MB. - Various bugfixes. (thanks jjk!)