summaryrefslogtreecommitdiff
path: root/doc/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/index.html')
-rw-r--r--doc/index.html291
1 files changed, 291 insertions, 0 deletions
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..048af4f
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,291 @@
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>s6 - skarnet's small supervision suite</title>
+ <meta name="Description" content="s6 - skarnet's small supervision suite" />
+ <meta name="Keywords" content="s6 unix administration root pipe laurent bercot ska skarnet supervision djb" />
+ <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> -->
+ </head>
+<body>
+
+<p>
+<a href="http://skarnet.org/software/">Software</a><br />
+<a href="http://skarnet.org/">skarnet.org</a>
+</p>
+
+<h1> s6 </h1>
+
+<h2> What is it&nbsp;? </h2>
+
+<p>
+ s6 is a small suite of programs for UNIX, designed to allow process supervision
+(a.k.a service supervision),
+in the line of <a href="http://cr.yp.to/daemontools.html">daemontools</a>
+and <a href="http://smarden.org/runit/">runit</a>.
+</p>
+
+<p>
+ The s6 documentation tries to be complete and self-contained; however,
+if you have never heard of process supervision before, you might be
+confused at first. See the <a href="#related">related resources</a> section
+below for pointers to more resources, and earlier approaches to process
+supervision that might help you understand the basics.
+</p>
+
+<hr />
+
+<ul>
+<li> <a href="why.html">Why another supervision suite?</a> Isn't <a href="http://smarden.org/runit/">runit</a> good enough?</li>
+<li> What is instant notification? What does the <a href="libftrig.html">libftrig</a> do exactly?</li>
+<li> How to run a s6-svscan-based supervision tree <a href="s6-svscan-not-1.html">without replacing init</a> </li>
+<li> How to <a href="s6-svscan-1.html">replace init</a> </li>
+</ul>
+
+<hr />
+
+<h2> Installation </h2>
+
+<h3> Requirements </h3>
+
+<ul>
+ <li> A POSIX-compliant system with a standard C development environment </li>
+ <li> GNU make, version 3.81 or later </li>
+ <li> <a href="http://skarnet.org/software/skalibs/">skalibs</a> version
+2.0.0.0 or later </li>
+ <li> <a href="http://skarnet.org/software/execline/">execline</a> version
+2.0.0.0 or later </li>
+</ul>
+
+<h3> Licensing </h3>
+
+<p>
+ s6 is free software. It is available under the
+<a href="http://opensource.org/licenses/ISC">ISC license</a>.
+</p>
+
+<h3> Download </h3>
+
+<ul>
+ <li> The current released version of s6 is <a href="s6-2.0.0.0.tar.gz">2.0.0.0</a>. </li>
+ <li> Alternatively, you can checkout a copy of the s6 git repository:
+<pre> git clone git://git.skarnet.org/s6 </pre> </li>
+</ul>
+
+<h3> Compilation </h3>
+
+<ul>
+ <li> See the enclosed INSTALL file for installation details. </li>
+</ul>
+
+<h3> Upgrade notes </h3>
+
+<ul>
+ <li> <a href="upgrade.html">This page</a> lists the differences to be aware of between
+the previous versions of execline and the current one. </li>
+</ul>
+
+<hr />
+
+<h2> Reference </h2>
+
+<h3> Commands </h3>
+
+<p>
+ All these commands exit 111 if they encounter a temporary error or
+hardware error, and
+100 if they encounter a permanent error - such as a misuse. Short-lived
+commands exit 0 on success.
+</p>
+
+<h4> Supervision system </h4>
+
+<p>
+ <a href="s6-svscan.html">s6-svscan</a> and <a href="s6-supervise.html">s6-supervise</a>
+are the long-lived processes maintaining the supervision tree. Other programs are
+a user interface to control those processes and monitor service states.
+</p>
+
+<ul>
+<li><a href="s6-svscan.html">The <tt>s6-svscan</tt> program</a></li>
+<li><a href="s6-svscanctl.html">The <tt>s6-svscanctl</tt> program</a></li>
+<li><a href="s6-supervise.html">The <tt>s6-supervise</tt> program</a></li>
+<li><a href="s6-svc.html">The <tt>s6-svc</tt> program</a></li>
+<li><a href="s6-svok.html">The <tt>s6-svok</tt> program</a></li>
+<li><a href="s6-svstat.html">The <tt>s6-svstat</tt> program</a></li>
+<li><a href="s6-svwait.html">The <tt>s6-svwait</tt> program</a></li>
+</ul>
+
+<h4> Other daemontools-like utilities </h4>
+
+<p>
+ These programs are a rewrite of the corresponding utilities from
+<a href="http://cr.yp.to/daemontools.html">daemontools</a>, with
+a few extras. The
+<a href="s6-log.html">s6-log</a> program is important in itself: it's
+a powerful, scriptable, general-purpose filtering and logging tool
+that can be used to entirely replace syslogd. It has many more
+features than its <a href="http://cr.yp.to/daemontools/multilog.html">multilog</a>
+counterpart.
+</p>
+
+<ul>
+<li><a href="s6-envdir.html">The <tt>s6-envdir</tt> program</a></li>
+<li><a href="s6-envuidgid.html">The <tt>s6-envuidgid</tt> program</a></li>
+<li><a href="s6-fghack.html">The <tt>s6-fghack</tt> program</a></li>
+<li><a href="s6-log.html">The <tt>s6-log</tt> program</a></li>
+<li><a href="s6-setlock.html">The <tt>s6-setlock</tt> program</a></li>
+<li><a href="s6-setsid.html">The <tt>s6-setsid</tt> program</a></li>
+<li><a href="s6-setuidgid.html">The <tt>s6-setuidgid</tt> program</a></li>
+<li><a href="s6-softlimit.html">The <tt>s6-softlimit</tt> program</a></li>
+<li><a href="s6-tai64n.html">The <tt>s6-tai64n</tt> program</a></li>
+<li><a href="s6-tai64nlocal.html">The <tt>s6-tai64nlocal</tt> program</a></li>
+<li><a href="ucspilogd.html">The <tt>ucspilogd</tt> program</a></li>
+<li><a href="s6-notifywhenup.html">The <tt>s6-notifywhenup</tt> program</a> (NEW in 2.0.0.0)</li>
+</ul>
+
+<h4> Fifodir management, notification and subscription </h4>
+
+<p>
+These programs are a clean rewrite of the obsolete "pipe-tools" package; they
+are now based on a properly designed notification library.
+They provide a command-line interface to
+<a href="libftrig.html#notification">inter-process notification and
+synchronization</a>.
+</p>
+
+<ul>
+<li><a href="s6-mkfifodir.html">The <tt>s6-mkfifodir</tt> program</a></li>
+<li><a href="s6-cleanfifodir.html">The <tt>s6-cleanfifodir</tt> program</a></li>
+</ul>
+<p>
+</p>
+<ul>
+<li><a href="s6-ftrig-notify.html">The <tt>s6-ftrig-notify</tt> program</a></li>
+</ul>
+<p>
+</p>
+<ul>
+<li><a href="s6-ftrig-wait.html">The <tt>s6-ftrig-wait</tt> program</a></li>
+<li><a href="s6-ftrig-listen1.html">The <tt>s6-ftrig-listen1</tt> program</a></li>
+<li><a href="s6-ftrig-listen.html">The <tt>s6-ftrig-listen</tt> program</a></li>
+</ul>
+
+<h4> Internal commands </h4>
+
+<ul>
+<li><a href="s6-ftrigrd.html">The <tt>s6-ftrigrd</tt> internal program</a></li>
+<li><a href="libs6lock/s6-lockd.html">The <tt>s6lockd</tt> internal program</a></li>
+<li><a href="libs6lock/s6lockd-helper.html">The <tt>s6lockd-helper</tt> internal program</a></li>
+</ul>
+
+
+<h3> Libraries </h3>
+
+<ul>
+<li><a href="libftrigw.html">The <tt>ftrigw</tt> library interface</a></li>
+<li><a href="libftrigr.html">The <tt>ftrigr</tt> library interface</a></li>
+<li><a href="libs6lock/">The <tt>s6lock</tt> library interface</a></li>
+</ul>
+
+<h3> Definitions </h3>
+
+<ul>
+<li> What is a <a href="fifodir.html">fifodir</a></li>
+<li> What is a <a href="servicedir.html">service directory</a></li>
+<li> What is a <a href="scandir.html">scan directory</a></li>
+<li> Why are the <a href="libftrig.html">libftrigw and libftrigr</a> needed </li>
+</ul>
+
+<hr />
+
+<a name="related">
+<h2> Related resources </h2>
+</a>
+
+<h3> s6 discussion </h3>
+
+<ul>
+ <li> <tt>s6</tt> is discussed on the
+<a href="http://www.skarnet.org/lists.html#supervision">supervision</a> mailing-list. </li>
+ <li> <tt>s6</tt> has a
+<a href="http://freecode.com/projects/s6">freecode page</a>.
+ </li>
+</ul>
+
+<h3> Similar work </h3>
+
+<ul>
+ <li> <a href="http://cr.yp.to/daemontools.html">daemontools</a>, the pioneering
+process supervision software suite. </li>
+ <li> <a href="http://untroubled.org/daemontools-encore/">daemontools-encore</a>,
+a derived work from daemontools with enhancements. (Note that although s6 follows
+the same naming scheme, the same general design, and many of the same architecture
+choices as daemontools, it is still original work, sharing no code at all with
+daemontools.) </li>
+ <li> <a href="http://smarden.org/runit/">runit</a>, a slightly different
+approach to process supervision, with the same goals. </li>
+ <li> <a href="http://b0llix.net/perp/">perp</a>, yet another slightly different
+approach to process supervision, also with the same goals. </li>
+</ul>
+
+<h3> Other init systems </h3>
+
+<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://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
+for Linux, with complete service management, that comes with the Ubuntu
+distribution. It includes a coffee machine and the kitchen sink.</li>
+ <li> Because Upstart wasn't bloated or unreliable enough, someone came up with
+<a href="http://freedesktop.org/wiki/Software/systemd/">systemd</a>, yet
+another Linux init system, so contrary to all principles of good engineering
+it's just scary. </li>
+ <li> The various BSD flavors have their own style of
+<a href="http://www.freebsd.org/doc/handbook/boot-init.html">init</a>. </li>
+ <li> MacOS X has its own init spaghetti monster called
+<a href="http://en.wikipedia.org/wiki/Launchd">launchd</a>. </li>
+</ul>
+
+<p>
+All-in-one init systems generally feel complex and convoluted, and when most
+people find out about the process supervision approach to init systems, they
+usually find it much simpler.
+<a href="s6-svscan-1.html#stages">There is a good reason for this.</a>
+</p>
+
+
+<h2> Credits </h2>
+
+ s6 is one of the (late...) results of a long design discussion that
+happened in 2002-2003 on the
+<a href="http://www.skarnet.org/lists.html#supervision">supervision list</a>
+and the <a href="http://cr.yp.to/lists.html#log">log list</a>.
+The main contributors to the thread were
+<ul>
+ <li> <a href="http://dogmap.org/">Paul Jarc</a> </li>
+ <li> <a href="http://smarden.org/pape/">Gerrit Pape</a> </li>
+ <li> <a href="http://ino-waiting.gmxhome.de/">Clemens Fischer</a> </li>
+ <li> <a href="http://www.mathematik.uni-ulm.de/m5/sk/">Stefan Karrman</a> </li>
+ <li> and me. </li>
+</ul>
+
+<h2> Miscellaneous </h2>
+
+<h3> Why "s6"&nbsp;? </h3>
+
+<p>
+<strong>s</strong>karnet.org's <strong>s</strong>mall and <strong>s</strong>ecure
+<strong>s</strong>upervision <strong>s</strong>oftware <strong>s</strong>uite.
+</p>
+
+<p>
+ Also, s6 is a nice command name prefix to have: it identifies the origin of the
+software, and it's short. Expect more use of s6- in future skarnet.org software
+releases. And please avoid using that prefix for your own projects.
+</p>
+
+</body>
+</html>