Hello, s6-rc-0.0.1.0 is out.
s6-rc is a service manager for Unix systems, running on top of a s6 supervision tree. It manages the live state of the machine, defined by a set of services, by bringing those services up or down as ordered by the user. It handles long-lived processes, a.k.a. "longruns", ensuring they're supervised by the s6 tree. It also handles one-time initialization scripts, a.k.a. "oneshots", running them in a reproducible environment without needing the usual sanitizer boilerplate. It manages dependencies between services, no matter whether they are oneshots or longruns; it can intertwine oneshot starts and longrun starts, or oneshot stops and longrun stops. When changing the machine state, it always ensures the consistency of the dependency graph. Services can be grouped in collections named "bundles", for easier manipulation. Bundles are like runlevels, but more powerful and flexible. s6-rc allows an arbitrary number of longrun services to be pipelined. s6, and other supervision suites, can maintain a pipe between a producer and a consumer ("logger"), so the producer or the consumer can restart without breaking the pipe and losing any data; s6-rc extends this idea to an arbitrary chain of producers piping their data into consumers that themselves pipe their data into... s6-rc features the shortest run-time code path of any service manager to this day: this includes systemd, sysv-rc, OpenRC and anopa. (I'd like to compare to nosh, but I can't read, or build, C++. I suspect the s6-rc codepaths are shorter than nosh's, if only because pure C vs. C++, but it's probably close either way.) http://skarnet.org/software/s6-rc/ git://git.skarnet.org/s6-rc Enjoy, Bug-reports welcome. Reports and suggestions on usability are also welcome. I'd like to get s6-rc adopted by Unix distributions, and that will only happen if they don't see it as daunting work; ideally, I'd like to spark a discussion about the best ways to convert existing rc scripts to the s6-rc source format, and then submit the emerging ideas to distributions. -- Laurent