summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/index.html2
-rw-r--r--doc/libs6/index.html2
-rw-r--r--doc/s6-svscan.html58
-rw-r--r--doc/ucspilogd.html4
-rw-r--r--doc/upgrade.html7
5 files changed, 65 insertions, 8 deletions
diff --git a/doc/index.html b/doc/index.html
index 50018e7..48ec334 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -101,7 +101,7 @@ library. </li>
<h3> Download </h3>
<ul>
- <li> The current released version of s6 is <a href="s6-2.2.1.1.tar.gz">2.2.1.1</a>. </li>
+ <li> The current released version of s6 is <a href="s6-2.2.2.0.tar.gz">2.2.2.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>
<li> There's also a
diff --git a/doc/libs6/index.html b/doc/libs6/index.html
index b70bda3..348dfed 100644
--- a/doc/libs6/index.html
+++ b/doc/libs6/index.html
@@ -54,7 +54,7 @@ stands for your skalibs sysdeps directory. </li>
<p>
The <tt>s6/s6.h</tt> header is actually a
concatenation of other headers:
-the libs6net is separated into several modules, each of them with its
+the libs6 is separated into several modules, each of them with its
own header.
</p>
diff --git a/doc/s6-svscan.html b/doc/s6-svscan.html
index a0a6790..6c4d8d9 100644
--- a/doc/s6-svscan.html
+++ b/doc/s6-svscan.html
@@ -27,7 +27,7 @@ the root or a branch of a <em>supervision tree</em>.
<h2> Interface </h2>
<pre>
- s6-svscan [ -c max ] [ -t <em>rescan</em> ] [ <em>scandir</em> ]
+ s6-svscan [ -S | -s ] [ -c max ] [ -t <em>rescan</em> ] [ <em>scandir</em> ]
</pre>
<ul>
@@ -59,6 +59,9 @@ execution. </li>
<h2> Options </h2>
<ul>
+ <li> <tt>-S&nbsp;</tt>&nbsp;: do not divert signals. This is the default for now;
+it may change in a future version of s6. </li>
+ <li> <tt>-s&nbsp;</tt>&nbsp;: divert signals - see below. </li>
<li> <tt>-c&nbsp;<em>max</em></tt>&nbsp;: maintain services for up to <em>max</em>
service directories. Default is 500. Lower limit is 2. There is no upper limit, but:
<ul>
@@ -82,20 +85,67 @@ scan (and a reap) every 5 seconds. It is <em>strongly</em> discouraged to set
<h2> Signals </h2>
<p>
- s6-svscan reacts to the following signals:
+ s6-svscan always reacts to the following signals:
</p>
<ul>
<li> SIGCHLD&nbsp;: triggers the reaper. </li>
<li> SIGALRM&nbsp;: triggers the scanner. </li>
+ <li> SIGABRT&nbsp;: acts as if a <tt>s6-svscanctl -b</tt> command had been received. </li>
+</ul>
+
+<p>
+ By default, it also reacts to the following signals:
+</p>
+
+<ul>
<li> SIGTERM&nbsp;: acts as if a <tt>s6-svscanctl -t</tt> command had been received. </li>
<li> SIGHUP&nbsp;: acts as if a <tt>s6-svscanctl -h</tt> command had been received. </li>
<li> SIGQUIT&nbsp;: acts as if a <tt>s6-svscanctl -q</tt> command had been received. </li>
- <li> SIGABRT&nbsp;: acts as if a <tt>s6-svscanctl -b</tt> command had been received. </li>
<li> SIGINT&nbsp;: acts as if a <tt>s6-svscanctl -6</tt> command had been received. </li>
- <li> SIGUSR1&nbsp;: acts as if a <tt>s6-svscanctl -7</tt> command had been received. </li>
</ul>
+<p>
+ But if the <tt>-s</tt> option was given, then instead of those default actions,
+s6-svscan uses configurable handlers: it forks and executes a program every time
+it receives one of the following signals.
+</p>
+
+<ul>
+ <li> SIGTERM&nbsp;: fork and execute <tt>.s6-svscan/SIGTERM</tt> </li>
+ <li> SIGHUP&nbsp;: fork and execute <tt>.s6-svscan/SIGHUP</tt> </li>
+ <li> SIGQUIT&nbsp;: fork and execute <tt>.s6-svscan/SIGQUIT</tt> </li>
+ <li> SIGINT&nbsp;: fork and execute <tt>.s6-svscan/SIGINT</tt> </li>
+ <li> SIGUSR1&nbsp;: fork and execute <tt>.s6-svscan/SIGUSR1</tt> </li>
+ <li> SIGUSR2&nbsp;: fork and execute <tt>.s6-svscan/SIGUSR2</tt> </li>
+</ul>
+
+<p>
+ If an action cannot be taken (the relevant file doesn't exist, or isn't
+executable, or any kind of error happens), s6-svscan prints a warning
+message to its standard error but does nothing else with the signal.
+</p>
+
+<p>
+ The <tt>-s</tt> mechanism is useful, for instance, when s6-svscan is running as
+process 1 and needs to trap signals such as SIGINT (sent on some systems by
+a Ctrl-Alt-Del press) in order to perform some specific work instead of
+executing into <tt>.s6-svscan/finish</tt> on the spot.
+</p>
+
+<p>
+ s6-svscan will not exit its loop on its own when it receives a signal such as
+SIGINT and the <tt>-s</tt> option has been given. To make it exit its loop,
+invoke a <a href="s6-svscanctl.html">s6-svscanctl</a> command from the signal
+handling script. For instance, a <tt>.s6-svscan/SIGINT</tt> script could look
+like this:
+</p>
+
+<pre> #!/command/execlineb -P
+ foreground { shutdown-the-services }
+ s6-svscanctl -i .
+</pre>
+
<h2> The reaper </h2>
<p>
diff --git a/doc/ucspilogd.html b/doc/ucspilogd.html
index 29b1975..856e257 100644
--- a/doc/ucspilogd.html
+++ b/doc/ucspilogd.html
@@ -79,7 +79,7 @@ than a standard <em>syslogd</em>.
</p>
<p>
- In the <tt>examples/ROOT/img/services-local/syslogd-linux</tt> subdirectory of the s6 package, you will
+ In the <tt>examples/syslogd-linux</tt> subdirectory of the s6 package, you will
find a suitable ucspilogd <a href="servicedir.html">service directory</a>.
The run scripts are written in the
<a href="http://skarnet.org/software/execline/">execline</a>
@@ -97,7 +97,7 @@ You can use <tt>ucspilogd</tt> to process data from those interfaces.
</p>
<p>
- The <tt>examples/ROOT/img/services-local/klogd-linux</tt> subdirectory of the s6 package
+ The <tt>examples/klogd-linux</tt> subdirectory of the s6 package
is a <a href="servicedir.html">service directory</a> providing such a <em>klogd</em> service
for Linux, using the <tt>/proc/kmsg</tt> interface.
</p>
diff --git a/doc/upgrade.html b/doc/upgrade.html
index a68b1a7..91c088e 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -18,6 +18,13 @@
<h1> What has changed in s6 </h1>
+<h2> in 2.2.2.0 </h2>
+
+<ul>
+ <li> <a href="s6-svscan.html">s6-svscan</a> now supports the <tt>-s</tt>
+option for configurable signal management. </li>
+</ul>
+
<h2> in 2.2.1.1 </h2>
<ul>