diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/index.html | 2 | ||||
-rw-r--r-- | doc/libs6/index.html | 2 | ||||
-rw-r--r-- | doc/s6-svscan.html | 58 | ||||
-rw-r--r-- | doc/ucspilogd.html | 4 | ||||
-rw-r--r-- | doc/upgrade.html | 7 |
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 </tt> : do not divert signals. This is the default for now; +it may change in a future version of s6. </li> + <li> <tt>-s </tt> : divert signals - see below. </li> <li> <tt>-c <em>max</em></tt> : 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 : triggers the reaper. </li> <li> SIGALRM : triggers the scanner. </li> + <li> SIGABRT : 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 : acts as if a <tt>s6-svscanctl -t</tt> command had been received. </li> <li> SIGHUP : acts as if a <tt>s6-svscanctl -h</tt> command had been received. </li> <li> SIGQUIT : acts as if a <tt>s6-svscanctl -q</tt> command had been received. </li> - <li> SIGABRT : acts as if a <tt>s6-svscanctl -b</tt> command had been received. </li> <li> SIGINT : acts as if a <tt>s6-svscanctl -6</tt> command had been received. </li> - <li> SIGUSR1 : 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 : fork and execute <tt>.s6-svscan/SIGTERM</tt> </li> + <li> SIGHUP : fork and execute <tt>.s6-svscan/SIGHUP</tt> </li> + <li> SIGQUIT : fork and execute <tt>.s6-svscan/SIGQUIT</tt> </li> + <li> SIGINT : fork and execute <tt>.s6-svscan/SIGINT</tt> </li> + <li> SIGUSR1 : fork and execute <tt>.s6-svscan/SIGUSR1</tt> </li> + <li> SIGUSR2 : 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> |