s6

Mirror/fork of https://skarnet.org/software/s6/
git clone https://ccx.te2000.cz/git/s6
Log | Files | Refs | README | LICENSE

commit 042b7d0e92e4cf42506c79ab6bfe504ddb08dc86
parent c4f01cd510b5ec915f8821d39d3df282380ba375
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date:   Mon, 27 Jul 2015 14:02:51 +0000

 - Doc fixes on notification, mentions of s6-rc
 - version: 2.2.0.0

Diffstat:
Mdoc/index.html | 14+++++++++++---
Mdoc/overview.html | 9++++++---
Mdoc/servicedir.html | 28+++++++++++++++++++++++++++-
3 files changed, 44 insertions(+), 7 deletions(-)

diff --git a/doc/index.html b/doc/index.html @@ -33,7 +33,7 @@ a very small amount of code. <p> Examples of things you can do by assembling together several programs -provided by s6: +provided by s6 - besides process supervision: </p> <ul> @@ -309,7 +309,9 @@ is a package to help you create a <tt>/sbin/init</tt> binary booting a Linux system with s6-svscan as process 1. </li> <li> <a href="https://github.com/just-containers/s6-overlay">s6-overlay</a> is a project that automates integration of s6 into Docker images. </li> - <li> <a href="http://jjacky.com/anopa">anopa</a> is a dependency-based + <li> <a href="http://skarnet.org/software/s6-rc/">s6-rc</a> is a +dependency-based service manager for s6. </li> + <li> <a href="http://jjacky.com/anopa">anopa</a> is another dependency-based service manager for s6. </li> </ul> @@ -318,7 +320,7 @@ service manager for s6. </li> <ul> <li> <tt>s6</tt> is discussed on the -<a href="http://www.skarnet.org/lists.html#supervision">supervision</a> mailing-list. </li> +<a href="http://skarnet.org/lists.html#supervision">supervision</a> mailing-list. </li> </ul> <h3> Similar work </h3> @@ -346,6 +348,12 @@ different way than the previous items on this list. </li> <ul> <li> Felix von Leitner's <a href="http://www.fefe.de/minit/">minit</a> is an init system for Linux, with process supervision capabilities. </li> + <li> <a href="http://git.suckless.org/sinit">suckless init</a> is +considered by many as the smallest possible init. I disagree: suckless +init is incorrect, because it +has no supervision capabilities, and thus, killing all processes but init +can brick the machine. Nevertheless, suckless init, like many other +suckless projects, is a neat exercise in minimalism. </li> <li> <a href="http://freshmeat.net/projects/sysvinit/">sysvinit</a> is the traditional init system for Linux. </li> <li> <a href="http://upstart.ubuntu.com/">Upstart</a> is a well-known init system diff --git a/doc/overview.html b/doc/overview.html @@ -346,7 +346,8 @@ s6 provides tools to do that: <li> The <a href="s6-svwait.html">s6-svwait</a>, <a href="s6-svlisten1.html">s6-svlisten1</a> and <a href="s6-svlisten.html">s6-svlisten</a> programs will wait until a set of -daemons is up, ready or down. </li> +daemons is up, ready, down (as soon as the <tt>./run</tt> process dies) or +really down (when the <tt>./finish</tt> process has also died). </li> <li> Unfortunately, a daemon being <em>up</em> does not mean that it is <em>ready</em>: <a href="notifywhenup.html">this page</a> goes into the details. s6 @@ -358,11 +359,13 @@ it. </li> </ul> <p> - For now, s6 does not provide a complete dependency management framework, + s6 does not provide a complete dependency management framework, i.e. a program to automatically start (or stop) a set of services in a specific order - that order being automatically computed from a graph of dependencies between services. - That functionality is planned for a future version of s6. + That functionality belongs to a <em>service manager</em>, and is +implemented for instance in the +<a href="http://skarnet.org/software/s6-rc/">s6-rc</a> package. </p> <h2> Additional utilities </h2> diff --git a/doc/servicedir.html b/doc/servicedir.html @@ -139,6 +139,30 @@ service is said to be <em>logged</em>; the <em>foo</em><tt>/log</tt> service is <em>foo</em><tt>/log/log</tt> exists, nothing special happens. </li> </ul> + <h3> Stability </h3> + +<p> + With the evolution of s6, it is possible that + <a href="s6-supervise.html">s6-supervise</a> configuration uses more and more +files in the service directory. The +<tt>notification-fd</tt> and <tt>timeout-finish</tt> files, for +instance, have appeared in 2015; users who previously had files +with the same name had to change them. There is no guarantee that +<a href="s6-supervise.html">s6-supervise</a> will not use additional +names in the service directory in the same fashion in the future. +</p> + +<p> + There <em>is</em>, however, a guarantee that +<a href="s6-supervise.html">s6-supervise</a> will never touch +subdirectories named <tt>data</tt> or <tt>env</tt>. So if you +need to store user information in the service directory with +the guarantee that it will never be mistaken for a configuration +file, no matter the version of s6, you should store that information in +the <tt>data</tt> or <tt>env</tt> subdirectories of the service +directory. +</p> + <a name="where"> <h2> Where to store my service directories&nbsp;? </h2> </a> @@ -184,7 +208,9 @@ amounts to less than a megabyte of data - sometimes much less. Knowing this, it makes sense to have an image of your service directories in the (possibly read-only) root filesystem, and <em>copy it all</em> to a scan directory located on a RAM filesystem that is mounted at boot time. -This is the setup I recommend. It has several advantages: +This is the setup I recommend, and the one used by the +<a href="http://skarnet.org/software/s6-rc/">s6-rc</a> service manager. + It has several advantages: <ul> <li> Your service directories reside on the root filesystem and are not modified during the lifetime of the system. If your root filesystem is