summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/s6-halt.html55
-rw-r--r--doc/s6-linux-init-halt.html102
-rw-r--r--doc/s6-linux-init-poweroff.html102
-rw-r--r--doc/s6-linux-init-reboot.html102
-rw-r--r--doc/s6-linux-init-shutdown.html78
-rw-r--r--doc/s6-linux-init-shutdownd.html81
-rw-r--r--doc/s6-poweroff.html55
-rw-r--r--doc/s6-reboot.html55
-rw-r--r--doc/upgrade.html3
9 files changed, 468 insertions, 165 deletions
diff --git a/doc/s6-halt.html b/doc/s6-halt.html
deleted file mode 100644
index 6f2a30e..0000000
--- a/doc/s6-halt.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="Content-Language" content="en" />
- <title>s6-linux-init: the s6-halt program</title>
- <meta name="Description" content="s6-linux-init: the s6-halt program" />
- <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
- <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
- </head>
-<body>
-
-<p>
-<a href="index.html">s6-linux-init</a><br />
-<a href="//skarnet.org/software/">Software</a><br />
-<a href="//skarnet.org/">skarnet.org</a>
-</p>
-
-<h1> The <tt>s6-halt</tt> program </h1>
-
-<p>
-<tt>s6-halt</tt> sends a signal to process 1 in order to halt the machine;
-or, with the <tt>-f</tt> option, it performs an immediate hard shutdown.
-</p>
-
-<h2> Interface </h2>
-
-<pre>
- s6-halt [ -h | -p | -r ] [ -f ]
-</pre>
-
-<ul>
- <li> s6-halt sends a signal to process 1. </li>
- <li> It then exits 0. </li>
-</ul>
-
-<h2> Options </h2>
-
-<ul>
- <li> <tt>-h</tt>&nbsp;: halt. The command will order a halt (i.e. the system will
-be shut down, but the power will remain up), which means
-sending a SIGUSR2 to process 1. This is the default. </li>
- <li> <tt>-p</tt>&nbsp;: poweroff. The command will order a power off, which means
-sending a SIGUSR1 to process 1. </li>
- <li> <tt>-r</tt>&nbsp;: reboot. The command will order a reboot, which means
-sending a SIGINT to process 1. </li>
- <li> <tt>-f</tt>&nbsp;: force. The command will not send any signal to process 1;
-it will just sync the filesystems then tell the kernel to halt, poweroff or reboot.
-<tt>s6-reboot -f</tt> or <tt>s6-poweroff -f</tt> should be the last program
-executed in the lifetime of a machine, at the end of the shutdown script called
-by process 1 when it receives a signal telling it to shut down. </li>
-</ul>
-
-</body>
-</html>
diff --git a/doc/s6-linux-init-halt.html b/doc/s6-linux-init-halt.html
new file mode 100644
index 0000000..0f68995
--- /dev/null
+++ b/doc/s6-linux-init-halt.html
@@ -0,0 +1,102 @@
+<html>
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>s6-linux-init: the s6-linux-init-halt program</title>
+ <meta name="Description" content="s6-linux-init: the s6-linux-init-halt program" />
+ <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
+ <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
+ </head>
+<body>
+
+<p>
+<a href="index.html">s6-linux-init</a><br />
+<a href="//skarnet.org/software/">Software</a><br />
+<a href="//skarnet.org/">skarnet.org</a>
+</p>
+
+<h1> The <tt>s6-linux-init-halt</tt> program </h1>
+
+<p>
+<tt>s6-linux-init-halt</tt> triggers the shutdown procedure in order to
+halt the system; or, with the <tt>-f</tt> option, it performs an immediate
+hard shutdown.
+</p>
+
+<h2> Interface </h2>
+
+<pre>
+ s6-linux-init-halt [ -h | -p | -r ] [ -d | -w ] [ -W ] [ -f ] [ -R <em>tmpfsdir</em> ]
+</pre>
+
+<ul>
+ <li> If the <tt>-f</tt> option is present, s6-linux-init-halt halts the system immediately. </li>
+ <li> Else, it triggers the machine's shutdown procedure.
+ <li> It exits 0. The shutdown procedure happens asynchronously. </li>
+</ul>
+
+<p>
+ This interface follows the traditional <em>sysvinit</em> interface for the
+<tt>halt</tt>, <tt>poweroff</tt> and <tt>reboot</tt> programs as close as possible.
+</p>
+
+<h2> Exit codes </h2>
+
+<ul>
+ <li> 0: shutdown procedure triggered. </li>
+ <li> 100: wrong usage, or user does not have root privileges. </li>
+ <li> 111: system call failed. </li>
+</ul>
+
+<h2> Options </h2>
+
+<ul>
+ <li> <tt>-h</tt>&nbsp;: halt. No matter the name of the command, it will order
+a halt (i.e. the system will be shut down, but the power will remain up).
+This is the default for <tt>s6-linux-init-halt</tt>. </li>
+ <li> <tt>-p</tt>&nbsp;: poweroff. No matter the name of the command, it will order
+a power off. This is the default for <tt>s6-linux-init-poweroff</tt>. </li>
+ <li> <tt>-r</tt>&nbsp;: reboot. No matter the name of the command, it will order
+a reboot. This is the default for <tt>s6-linux-init-reboot</tt>. </li>
+ <li> <tt>-d</tt>&nbsp;: Do not write a wtmp shutdown entry. </li>
+ <li> <tt>-w</tt>&nbsp;: Only write a wtmp shutdown entry; do not actually shut down
+the system. </li>
+ <li> <tt>-W</tt>&nbsp;: Do not send a <tt>wall</tt> message to users before shutting
+down the system. Some other implementations of the <tt>halt</tt>, <tt>poweroff</tt>
+and <tt>reboot</tt> commands use the <tt>--no-wall</tt> long option to achieve this. </li>
+ <li> <tt>-f</tt>&nbsp;: force. The command will not trigger a clean shutdown
+procedure; it will just sync the filesystems then tell the kernel to immediately
+halt, poweroff or reboot. This should be the last step in the lifetime of the
+machine. </li>
+ <li> <tt>-R&nbsp;<em>tmpfsdir</em></tt>&nbsp;: assume that the root-only
+boot-time tmpfs has been mounted on <em>tmpfsdir</em>. Default is <tt>/run</tt>.
+It is important to get this right, because the contact point with the
+<a href="s6-linux-init-shutdownd.html">s6-linux-init-shutdownd</a> daemon,
+which manages the shutdown procedure, is located under this directory. The
+<tt>halt</tt>, <tt>poweroff</tt> and <tt>reboot</tt> scripts created by a
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> invocation
+automatically use the correct <tt>-R</tt> option. </li>
+</ul>
+
+<h2> Notes </h2>
+
+<ul>
+ <li> The
+<a href="s6-linux-init-halt.html">s6-linux-init-halt</a>,
+<a href="s6-linux-init-poweroff.html">s6-linux-init-poweroff</a>,
+<a href="s6-linux-init-reboot.html">s6-linux-init-reboot</a> and
+<a href="s6-linux-init-shutdown.html">s6-linux-init-shutdown</a>
+binaries are not meant to be called directly by administrators.
+Instead, their purpose is to be used in <tt>halt</tt>, <tt>poweroff</tt>,
+<tt>reboot</tt> and <tt>shutdown</tt> scripts created by
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a>; those scripts
+will call them with the correct <tt>-R&nbsp;<em>tmpfsdir</em></tt> option.
+The scripts should typically be linked to <tt>/sbin</tt> after
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> execution, to
+provide drop-in replacements for the <em>sysvinit</em> programs with the
+same names. </li>
+</ul>
+
+</body>
+</html>
diff --git a/doc/s6-linux-init-poweroff.html b/doc/s6-linux-init-poweroff.html
new file mode 100644
index 0000000..2126b23
--- /dev/null
+++ b/doc/s6-linux-init-poweroff.html
@@ -0,0 +1,102 @@
+<html>
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>s6-linux-init: the s6-linux-init-poweroff program</title>
+ <meta name="Description" content="s6-linux-init: the s6-linux-init-poweroff program" />
+ <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
+ <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
+ </head>
+<body>
+
+<p>
+<a href="index.html">s6-linux-init</a><br />
+<a href="//skarnet.org/software/">Software</a><br />
+<a href="//skarnet.org/">skarnet.org</a>
+</p>
+
+<h1> The <tt>s6-linux-init-poweroff</tt> program </h1>
+
+<p>
+<tt>s6-linux-init-poweroff</tt> triggers the shutdown procedure in order to
+halt the system; or, with the <tt>-f</tt> option, it performs an immediate
+hard shutdown.
+</p>
+
+<h2> Interface </h2>
+
+<pre>
+ s6-linux-init-poweroff [ -h | -p | -r ] [ -d | -w ] [ -W ] [ -f ] [ -R <em>tmpfsdir</em> ]
+</pre>
+
+<ul>
+ <li> If the <tt>-f</tt> option is present, s6-linux-init-poweroff halts the system immediately. </li>
+ <li> Else, it triggers the machine's shutdown procedure.
+ <li> It exits 0. The shutdown procedure happens asynchronously. </li>
+</ul>
+
+<p>
+ This interface follows the traditional <em>sysvinit</em> interface for the
+<tt>halt</tt>, <tt>poweroff</tt> and <tt>reboot</tt> programs as close as possible.
+</p>
+
+<h2> Exit codes </h2>
+
+<ul>
+ <li> 0: shutdown procedure triggered. </li>
+ <li> 100: wrong usage, or user does not have root privileges. </li>
+ <li> 111: system call failed. </li>
+</ul>
+
+<h2> Options </h2>
+
+<ul>
+ <li> <tt>-h</tt>&nbsp;: halt. No matter the name of the command, it will order
+a halt (i.e. the system will be shut down, but the power will remain up).
+This is the default for <tt>s6-linux-init-halt</tt>. </li>
+ <li> <tt>-p</tt>&nbsp;: poweroff. No matter the name of the command, it will order
+a power off. This is the default for <tt>s6-linux-init-poweroff</tt>. </li>
+ <li> <tt>-r</tt>&nbsp;: reboot. No matter the name of the command, it will order
+a reboot. This is the default for <tt>s6-linux-init-reboot</tt>. </li>
+ <li> <tt>-d</tt>&nbsp;: Do not write a wtmp shutdown entry. </li>
+ <li> <tt>-w</tt>&nbsp;: Only write a wtmp shutdown entry; do not actually shut down
+the system. </li>
+ <li> <tt>-W</tt>&nbsp;: Do not send a <tt>wall</tt> message to users before shutting
+down the system. Some other implementations of the <tt>halt</tt>, <tt>poweroff</tt>
+and <tt>reboot</tt> commands use the <tt>--no-wall</tt> long option to achieve this. </li>
+ <li> <tt>-f</tt>&nbsp;: force. The command will not trigger a clean shutdown
+procedure; it will just sync the filesystems then tell the kernel to immediately
+halt, poweroff or reboot. This should be the last step in the lifetime of the
+machine. </li>
+ <li> <tt>-R&nbsp;<em>tmpfsdir</em></tt>&nbsp;: assume that the root-only
+boot-time tmpfs has been mounted on <em>tmpfsdir</em>. Default is <tt>/run</tt>.
+It is important to get this right, because the contact point with the
+<a href="s6-linux-init-shutdownd.html">s6-linux-init-shutdownd</a> daemon,
+which manages the shutdown procedure, is located under this directory. The
+<tt>halt</tt>, <tt>poweroff</tt> and <tt>reboot</tt> scripts created by a
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> invocation
+automatically use the correct <tt>-R</tt> option. </li>
+</ul>
+
+<h2> Notes </h2>
+
+<ul>
+ <li> The
+<a href="s6-linux-init-halt.html">s6-linux-init-halt</a>,
+<a href="s6-linux-init-poweroff.html">s6-linux-init-poweroff</a>,
+<a href="s6-linux-init-reboot.html">s6-linux-init-reboot</a> and
+<a href="s6-linux-init-shutdown.html">s6-linux-init-shutdown</a>
+binaries are not meant to be called directly by administrators.
+Instead, their purpose is to be used in <tt>halt</tt>, <tt>poweroff</tt>,
+<tt>reboot</tt> and <tt>shutdown</tt> scripts created by
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a>; those scripts
+will call them with the correct <tt>-R&nbsp;<em>tmpfsdir</em></tt> option.
+The scripts should typically be linked to <tt>/sbin</tt> after
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> execution, to
+provide drop-in replacements for the <em>sysvinit</em> programs with the
+same names. </li>
+</ul>
+
+</body>
+</html>
diff --git a/doc/s6-linux-init-reboot.html b/doc/s6-linux-init-reboot.html
new file mode 100644
index 0000000..422eeed
--- /dev/null
+++ b/doc/s6-linux-init-reboot.html
@@ -0,0 +1,102 @@
+<html>
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>s6-linux-init: the s6-linux-init-reboot program</title>
+ <meta name="Description" content="s6-linux-init: the s6-linux-init-reboot program" />
+ <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
+ <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
+ </head>
+<body>
+
+<p>
+<a href="index.html">s6-linux-init</a><br />
+<a href="//skarnet.org/software/">Software</a><br />
+<a href="//skarnet.org/">skarnet.org</a>
+</p>
+
+<h1> The <tt>s6-linux-init-reboot</tt> program </h1>
+
+<p>
+<tt>s6-linux-init-reboot</tt> triggers the shutdown procedure in order to
+reboot the system; or, with the <tt>-f</tt> option, it performs an immediate
+hard reboot.
+</p>
+
+<h2> Interface </h2>
+
+<pre>
+ s6-linux-init-reboot [ -h | -p | -r ] [ -d | -w ] [ -W ] [ -f ] [ -R <em>tmpfsdir</em> ]
+</pre>
+
+<ul>
+ <li> If the <tt>-f</tt> option is present, s6-linux-init-reboot reboots the system immediately. </li>
+ <li> Else, it triggers the machine's shutdown procedure, which will end in a reboot.
+ <li> It exits 0. The shutdown procedure happens asynchronously. </li>
+</ul>
+
+<p>
+ This interface follows the traditional <em>sysvinit</em> interface for the
+<tt>halt</tt>, <tt>poweroff</tt> and <tt>reboot</tt> programs as close as possible.
+</p>
+
+<h2> Exit codes </h2>
+
+<ul>
+ <li> 0: shutdown procedure triggered. </li>
+ <li> 100: wrong usage, or user does not have root privileges. </li>
+ <li> 111: system call failed. </li>
+</ul>
+
+<h2> Options </h2>
+
+<ul>
+ <li> <tt>-h</tt>&nbsp;: halt. No matter the name of the command, it will order
+a halt (i.e. the system will be shut down, but the power will remain up).
+This is the default for <tt>s6-linux-init-halt</tt>. </li>
+ <li> <tt>-p</tt>&nbsp;: poweroff. No matter the name of the command, it will order
+a power off. This is the default for <tt>s6-linux-init-poweroff</tt>. </li>
+ <li> <tt>-r</tt>&nbsp;: reboot. No matter the name of the command, it will order
+a reboot. This is the default for <tt>s6-linux-init-reboot</tt>. </li>
+ <li> <tt>-d</tt>&nbsp;: Do not write a wtmp shutdown entry. </li>
+ <li> <tt>-w</tt>&nbsp;: Only write a wtmp shutdown entry; do not actually shut down
+the system. </li>
+ <li> <tt>-W</tt>&nbsp;: Do not send a <tt>wall</tt> message to users before shutting
+down the system. Some other implementations of the <tt>halt</tt>, <tt>poweroff</tt>
+and <tt>reboot</tt> commands use the <tt>--no-wall</tt> long option to achieve this. </li>
+ <li> <tt>-f</tt>&nbsp;: force. The command will not trigger a clean shutdown
+procedure; it will just sync the filesystems then tell the kernel to immediately
+halt, poweroff or reboot. This should be the last step in the lifetime of the
+machine. </li>
+ <li> <tt>-R&nbsp;<em>tmpfsdir</em></tt>&nbsp;: assume that the root-only
+boot-time tmpfs has been mounted on <em>tmpfsdir</em>. Default is <tt>/run</tt>.
+It is important to get this right, because the contact point with the
+<a href="s6-linux-init-shutdownd.html">s6-linux-init-shutdownd</a> daemon,
+which manages the shutdown procedure, is located under this directory. The
+<tt>halt</tt>, <tt>poweroff</tt> and <tt>reboot</tt> scripts created by a
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> invocation
+automatically use the correct <tt>-R</tt> option. </li>
+</ul>
+
+<h2> Notes </h2>
+
+<ul>
+ <li> The
+<a href="s6-linux-init-halt.html">s6-linux-init-halt</a>,
+<a href="s6-linux-init-poweroff.html">s6-linux-init-poweroff</a>,
+<a href="s6-linux-init-reboot.html">s6-linux-init-reboot</a> and
+<a href="s6-linux-init-shutdown.html">s6-linux-init-shutdown</a>
+binaries are not meant to be called directly by administrators.
+Instead, their purpose is to be used in <tt>halt</tt>, <tt>poweroff</tt>,
+<tt>reboot</tt> and <tt>shutdown</tt> scripts created by
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a>; those scripts
+will call them with the correct <tt>-R&nbsp;<em>tmpfsdir</em></tt> option.
+The scripts should typically be linked to <tt>/sbin</tt> after
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> execution, to
+provide drop-in replacements for the <em>sysvinit</em> programs with the
+same names. </li>
+</ul>
+
+</body>
+</html>
diff --git a/doc/s6-linux-init-shutdown.html b/doc/s6-linux-init-shutdown.html
new file mode 100644
index 0000000..72bbfcf
--- /dev/null
+++ b/doc/s6-linux-init-shutdown.html
@@ -0,0 +1,78 @@
+<html>
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>s6-linux-init: the s6-linux-init-shutdown program</title>
+ <meta name="Description" content="s6-linux-init: the s6-linux-init-shutdown program" />
+ <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
+ <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
+ </head>
+<body>
+
+<p>
+<a href="index.html">s6-linux-init</a><br />
+<a href="//skarnet.org/software/">Software</a><br />
+<a href="//skarnet.org/">skarnet.org</a>
+</p>
+
+<h1> The <tt>s6-linux-init-shutdown</tt> program </h1>
+
+<p>
+<tt>s6-linux-init-shutdown</tt> triggers the system shutdown procedure.
+</p>
+
+<h2> Interface </h2>
+
+<pre>
+ s6-linux-init-shutdown [ -h | -p | -r | -k ] [ -a ] [ -t <em>sec</em> ] [ -f | -F ] [ -R <em>tmpfsdir</em> ] <em>time</em> [ <em>message</em> ]
+ s6-linux-init-shutdown -c [ -R <em>tmpfsdir</em> ] [ <em>message</em> ]
+</pre>
+
+<ul>
+ <li> If the <tt>-c</tt> option is present, a pending shutdown is cancelled. </li>
+ <li> Else, it triggers the shutdown procedure.
+ <li> It exits 0. The shutdown procedure happens asynchronously. </li>
+</ul>
+
+<p>
+ The <tt>s6-linux-init-shutdown</tt> program conforms to the LSB-3.0.0
+<a href="https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA.junk/shutdown.html">shutdown</a>
+interface.
+</p>
+
+<h2> Exit codes </h2>
+
+<ul>
+ <li> 0: shutdown procedure triggered. </li>
+ <li> 100: wrong usage, or user does not have root privileges. </li>
+ <li> 111: system call failed. </li>
+</ul>
+
+<h2> Supplementary options </h2>
+
+<p>
+ These options are supported by <tt>s6-linux-init-shutdown</tt> but are not
+part of the LSB-3.0.0 <tt>shutdown</tt> specification.
+</p>
+
+<ul>
+ <li> <tt>-R&nbsp;<em>tmpfsdir</em></tt>&nbsp;: assume that the root-only
+boot-time tmpfs has been mounted on <em>tmpfsdir</em>. Default is <tt>/run</tt>.
+The <tt>shutdown</tt> script created by a
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> invocation
+automatically execs into <tt>s6-linux-init-shutdown</tt> with the correct
+<tt>-R</tt> option. </li>
+</ul>
+
+<h2> Notes </h2>
+
+<ul>
+ <li> The <a href="s6-linux-init-shutdown.html">s6-linux-init-shutdown</a>
+binary is not meant to be called directly by administrators.
+Instead, its purpose is to be used in a <tt>shutdown</tt> script created by
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a>. </li>
+</ul>
+
+</body>
+</html>
diff --git a/doc/s6-linux-init-shutdownd.html b/doc/s6-linux-init-shutdownd.html
new file mode 100644
index 0000000..b6ea412
--- /dev/null
+++ b/doc/s6-linux-init-shutdownd.html
@@ -0,0 +1,81 @@
+<html>
+ <head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>s6-linux-init: the s6-linux-init-shutdownd internal program</title>
+ <meta name="Description" content="s6-linux-init: the s6-linux-init-shutdownd internal program" />
+ <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot daemon shutdownd" />
+ <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
+ </head>
+<body>
+
+<p>
+<a href="index.html">s6-linux-init</a><br />
+<a href="//skarnet.org/software/">Software</a><br />
+<a href="//skarnet.org/">skarnet.org</a>
+</p>
+
+<h1> The <tt>s6-linux-init-shutdownd</tt> internal program </h1>
+
+<p>
+<tt>s6-linux-init-shutdownd</tt> is the daemon that manages the shutdown
+procedure for a s6-linux-init installation. It is not meant to be called
+directly by the user.
+</p>
+
+<h2> Interface </h2>
+
+<pre>
+ s6-linux-init-shutdownd [ -b <em>bindir</em> ] [ -c <em>basedir</em> ] [ -g <em>gracetime</em> ] <em>fifo</em>
+</pre>
+
+<ul>
+ <li> <tt>s6-linux-init-shutdownd</tt> opens the <em>fifo</em> named pipe
+and listens to it. This is where programs such as
+<a href="s6-linux-init-shutdown.html">s6-linux-init-shutdown</a> send their
+commands when they are told to trigger the shutdown procedure.</li>
+ <li> When it receives a command to shut down, <tt>s6-linux-init-shutdownd</tt>
+first spawns the <em>stage3</em> script defined by the last
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a> invocation. </li>
+ <li> When this script exits, <tt>s6-linux-init-shutdownd</tt> kills all
+processes, first with a SIGTERM, then (after the grace time specified by
+the shutdown command) with a SIGKILL. </li>
+ <li> It then runs the automatically-generated <em>stage 4</em> script,
+which unmounts the file systems and halts, powers off or reboots the
+machine. </li>
+</ul>
+
+<h2> Exit codes </h2>
+
+<ul>
+ <li> 100: wrong usage, or user does not have root privileges. </li>
+ <li> 111: system call failed. </li>
+</ul>
+
+<h2> Options </h2>
+
+<ul>
+ <li> <tt>-b&nbsp;<em>bindir</em></tt>&nbsp;: look for the
+<a href="//skarnet.org/software/execline/execlineb.html">execlineb</a>
+script interpreter in the <em>bindir</em> directory. Default is <tt>/bin</tt>. </li>
+ <li> <tt>-c&nbsp;<em>basedir</em></tt>&nbsp;: look for the
+<em>stage3</em> and <em>stage4</em> scripts in the <em>basedir</em>
+directory. Default is <tt>/etc/s6-linux-init</tt>. </li>
+ <li> <tt>-g&nbsp;<em>gracetime</em></tt>&nbsp;: if the shutdown command
+does not specify a grace time between the SIGTERM and the SIGKILL, use
+<em>gracetime</em> milliseconds. Default is 3000. </li>
+</ul>
+
+<h2> Notes </h2>
+
+<ul>
+ <li> The <a href="s6-linux-init-shutdownd.html">s6-linux-init-shutdownd</a>
+binary is not meant to be called directly by administrators. It is run
+by a <a href="//skarnet.org/software/s6/">s6</a> service that is automatically
+generated by
+<a href="s6-linux-init-maker.html">s6-linux-init-maker</a>. </li>
+</ul>
+
+</body>
+</html>
diff --git a/doc/s6-poweroff.html b/doc/s6-poweroff.html
deleted file mode 100644
index e215c38..0000000
--- a/doc/s6-poweroff.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="Content-Language" content="en" />
- <title>s6-linux-init: the s6-poweroff program</title>
- <meta name="Description" content="s6-linux-init: the s6-poweroff program" />
- <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
- <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
- </head>
-<body>
-
-<p>
-<a href="index.html">s6-linux-init</a><br />
-<a href="//skarnet.org/software/">Software</a><br />
-<a href="//skarnet.org/">skarnet.org</a>
-</p>
-
-<h1> The <tt>s6-poweroff</tt> program </h1>
-
-<p>
-<tt>s6-poweroff</tt> sends a signal to process 1 in order to power off the machine;
-or, with the <tt>-f</tt> option, it performs an immediate hard shutdown.
-</p>
-
-<h2> Interface </h2>
-
-<pre>
- s6-poweroff [ -h | -p | -r ] [ -f ]
-</pre>
-
-<ul>
- <li> s6-poweroff sends a signal to process 1. </li>
- <li> It then exits 0. </li>
-</ul>
-
-<h2> Options </h2>
-
-<ul>
- <li> <tt>-h</tt>&nbsp;: halt. The command will order a halt (i.e. the system will
-be shut down, but the power will remain up), which means
-sending a SIGUSR2 to process 1. </li>
- <li> <tt>-p</tt>&nbsp;: poweroff. The command will order a power off, which means
-sending a SIGUSR1 to process 1. This is the default. </li>
- <li> <tt>-r</tt>&nbsp;: reboot. The command will order a reboot, which means
-sending a SIGINT to process 1. </li>
- <li> <tt>-f</tt>&nbsp;: force. The command will not send any signal to process 1;
-it will just sync the filesystems then tell the kernel to halt, poweroff or reboot.
-<tt>s6-reboot -f</tt> or <tt>s6-poweroff -f</tt> should be the last program
-executed in the lifetime of a machine, at the end of the shutdown script called
-by process 1 when it receives a signal telling it to shut down. </li>
-</ul>
-
-</body>
-</html>
diff --git a/doc/s6-reboot.html b/doc/s6-reboot.html
deleted file mode 100644
index 16043c5..0000000
--- a/doc/s6-reboot.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="Content-Language" content="en" />
- <title>s6-linux-init: the s6-reboot program</title>
- <meta name="Description" content="s6-linux-init: the s6-reboot program" />
- <meta name="Keywords" content="s6 linux init administration root utilities shutdown halt poweroff reboot" />
- <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
- </head>
-<body>
-
-<p>
-<a href="index.html">s6-linux-init</a><br />
-<a href="//skarnet.org/software/">Software</a><br />
-<a href="//skarnet.org/">skarnet.org</a>
-</p>
-
-<h1> The <tt>s6-reboot</tt> program </h1>
-
-<p>
-<tt>s6-reboot</tt> sends a signal to process 1 in order to reboot the machine;
-or, with the <tt>-f</tt> option, it performs an immediate reboot.
-</p>
-
-<h2> Interface </h2>
-
-<pre>
- s6-reboot [ -h | -p | -r ] [ -f ]
-</pre>
-
-<ul>
- <li> s6-reboot sends a signal to process 1. </li>
- <li> It then exits 0. </li>
-</ul>
-
-<h2> Options </h2>
-
-<ul>
- <li> <tt>-h</tt>&nbsp;: halt. The command will order a halt (i.e. the system will
-be shut down, but the power will remain up), which means
-sending a SIGUSR2 to process 1. </li>
- <li> <tt>-p</tt>&nbsp;: poweroff. The command will order a power off, which means
-sending a SIGUSR1 to process 1. </li>
- <li> <tt>-r</tt>&nbsp;: reboot. The command will order a reboot, which means
-sending a SIGINT to process 1. This is the default. </li>
- <li> <tt>-f</tt>&nbsp;: force. The command will not send any signal to process 1;
-it will just sync the filesystems then tell the kernel to halt, poweroff or reboot.
-<tt>s6-reboot -f</tt> or <tt>s6-poweroff -f</tt> should be the last program
-executed in the lifetime of a machine, at the end of the shutdown script called
-by process 1 when it receives a signal telling it to shut down. </li>
-</ul>
-
-</body>
-</html>
diff --git a/doc/upgrade.html b/doc/upgrade.html
index 7a5d279..2b082fb 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -33,6 +33,9 @@ anymore (stage 3 was previously the user-written <tt>/etc/rc.shutdown</tt>
script). </li>
<li> The default user-provided "end of stage 2, bring down services" script
was named <tt>/etc/rc.tini</tt> before; now it's named <tt>/etc/rc.shutdown</tt>. </li>
+ <li> Everything now builds as PIC by default no matter
+the toolchain's settings. Use the <tt>--disable-all-pic</tt> configure
+option to build executables and static libraries as non-PIC. </li>
</ul>
<h2> in 0.3.1.1 </h2>