rustit/mirror_runit/runit-2.1.2/doc/sv.8.html
2024-03-24 23:51:57 +00:00

218 lines
8.2 KiB
HTML

<html>
<head>
<title>sv(8) manual page</title>
</head>
<body bgcolor='white'>
<a href='http://smarden.org/pape/'>G. Pape</a><br><a href='index.html'>runit</A><hr><p>
<h2><a name='sect0'>Name</a></h2>
sv - control and manage services monitored by <i><b>runsv</b>(8)</i>
<h2><a name='sect1'>Synopsis</a></h2>
<b>sv</b> [-v]
[-w <i>sec]</i> <i>command</i> <i>services</i> <p>
<b>/etc/init.d/</b><i>service</i> [-w <i>sec]</i> <i>command</i>
<h2><a name='sect2'>Description</a></h2>
The
<b>sv</b> program reports the current status and controls the state of services
monitored by the <i><b>runsv</b>(8)</i> supervisor. <p>
<i>services</i> consists of one or more arguments,
each argument naming a directory <i>service</i> used by <i><b>runsv</b>(8)</i>. If <i>service</i> doesn&rsquo;t
start with a dot or slash and doesn&rsquo;t end with a slash, it is searched in
the default services directory <i>/service/</i>, otherwise relative to the current
directory. <p>
<i>command</i> is one of up, down, status, once, pause, cont, hup, alarm,
interrupt, 1, 2, term, kill, or exit, or start, stop, restart, shutdown,
force-stop, force-reload, force-restart, force-shutdown. <p>
The <b>sv</b> program can
be sym-linked to <i>/etc/init.d/</i> to provide an LSB init script interface. The
<i>service</i> to be controlled then is specified by the base name of the &lsquo;&lsquo;init
script&rsquo;&rsquo;.
<h2><a name='sect3'>Commands</a></h2>
<dl>
<dt><b>status</b> </dt>
<dd>Report the current status of the service, and the
appendant log service if available, to standard output. </dd>
<dt><b>up</b> </dt>
<dd>If the service
is not running, start it. If the service stops, restart it. </dd>
<dt><b>down</b> </dt>
<dd>If the service
is running, send it the TERM signal, and the CONT signal. If ./run exits,
start ./finish if it exists. After it stops, do not restart service. </dd>
<dt><b>once</b>
</dt>
<dd>If the service is not running, start it. Do not restart it if it stops. </dd>
<dt><b>pause
cont hup alarm interrupt quit 1 2 term kill</b> </dt>
<dd>If the service is running,
send it the STOP, CONT, HUP, ALRM, INT, QUIT, USR1, USR2, TERM, or KILL
signal respectively. </dd>
<dt><b>exit</b> </dt>
<dd>If the service is running, send it the TERM signal,
and the CONT signal. Do not restart the service. If the service is down,
and no log service exists, <i><b>runsv</b>(8)</i> exits. If the service is down and a
log service exists, <i><b>runsv</b>(8)</i> closes the standard input of the log service
and waits for it to terminate. If the log service is down, <i><b>runsv</b>(8)</i> exits.
This command is ignored if it is given to an appendant log service. </dd>
</dl>
<p>
<b>sv</b> actually
looks only at the first character of these <i>command</i>s.
<h3><a name='sect4'>Commands compatible
to LSB init script actions</a></h3>
<dl>
<dt><b>status</b> </dt>
<dd>Same as <i>status</i>. </dd>
<dt><b>start</b> </dt>
<dd>Same as <i>up</i>, but wait
up to 7 seconds for the command to take effect. Then report the status or
timeout. If the script <i>./check</i> exists in the service directory, <b>sv</b> runs this
script to check whether the service is up and available; it&rsquo;s considered
to be available if <i>./check</i> exits with 0. </dd>
<dt><b>stop</b> </dt>
<dd>Same as <i>down</i>, but wait up to
7 seconds for the service to become down. Then report the status or timeout.
</dd>
<dt><b>reload</b> </dt>
<dd>Same as <i>hup</i>, and additionally report the status afterwards. </dd>
<dt><b>restart</b>
</dt>
<dd>Send the commands <i>term</i>, <i>cont</i>, and <i>up</i> to the service, and wait up to 7 seconds
for the service to restart. Then report the status or timeout. If the script
<i>./check</i> exists in the service directory, <b>sv</b> runs this script to check whether
the service is up and available again; it&rsquo;s considered to be available if
<i>./check</i> exits with 0. </dd>
<dt><b>shutdown</b> </dt>
<dd>Same as <i>exit</i>, but wait up to 7 seconds for
the <i><b>runsv</b>(8)</i> process to terminate. Then report the status or timeout. </dd>
<dt><b>force-stop</b>
</dt>
<dd>Same as <i>down</i>, but wait up to 7 seconds for the service to become down. Then
report the status, and on timeout send the service the <i>kill</i> command. </dd>
<dt><b>force-reload</b>
</dt>
<dd>Send the service the <i>term</i> and <i>cont</i> commands, and wait up to 7 seconds for
the service to restart. Then report the status, and on timeout send the
service the <i>kill</i> command. </dd>
<dt><b>force-restart</b> </dt>
<dd>Send the service the <i>term</i>, <i>cont</i> and
<i>up</i> commands, and wait up to 7 seconds for the service to restart. Then report
the status, and on timeout send the service the <i>kill</i> command. If the script
<i>./check</i> exists in the service directory, <b>sv</b> runs this script to check whether
the service is up and available again; it&rsquo;s considered to be available if
<i>./check</i> exits with 0. </dd>
<dt><b>force-shutdown</b> </dt>
<dd>Same as <i>exit</i>, but wait up to 7 seconds
for the <i><b>runsv</b>(8)</i> process to terminate. Then report the status, and on timeout
send the service the <i>kill</i> command. </dd>
<dt><b>try-restart</b> </dt>
<dd>if the service is running,
send it the <i>term</i> and <i>cont</i> commands, and wait up to 7 seconds for the service
to restart. Then report the status or timeout.
<p> </dd>
</dl>
<h3><a name='sect5'>Additional Commands</a></h3>
<dl>
<dt><b>check</b>
</dt>
<dd>Check for the service to be in the state that&rsquo;s been requested. Wait up to
7 seconds for the service to reach the requested state, then report the
status or timeout. If the requested state of the service is <i>up</i>, and the
script <i>./check</i> exists in the service directory, <b>sv</b> runs this script to check
whether the service is up and running; it&rsquo;s considered to be up if <i>./check</i>
exits with 0. </dd>
</dl>
<h2><a name='sect6'>Options</a></h2>
<dl>
<dt><b>-v</b> </dt>
<dd>If the <i>command</i> is up, down, term, once, cont, or
exit, then wait up to 7 seconds for the command to take effect. Then report
the status or timeout. </dd>
<dt><b>-w <i>sec</b> </i></dt>
<dd>Override the default timeout of 7 seconds with
<i>sec</i> seconds. This option implies <i>-v</i>. </dd>
</dl>
<h2><a name='sect7'>Environment</a></h2>
<dl>
<dt><b>SVDIR</b> </dt>
<dd>The environment variable
$SVDIR overrides the default services directory <i>/service/</i>. </dd>
<dt><b>SVWAIT</b> </dt>
<dd>The environment
variable $SVWAIT overrides the default 7 seconds to wait for a command
to take effect. It is overridden by the -w option. </dd>
</dl>
<h2><a name='sect8'>Exit Codes</a></h2>
<b>sv</b> exits 0, if
the <i>command</i> was successfully sent to all <i>services</i>, and, if it was told
to wait, the <i>command</i> has taken effect to all services. <p>
For each <i>service</i>
that caused an error (e.g. the directory is not controlled by a <i><b>runsv</b>(8)</i>
process, or <b>sv</b> timed out while waiting), <b>sv</b> increases the exit code by
one and exits non zero. The maximum is 99. <b>sv</b> exits 100 on error. <p>
If <b>sv</b> is
called with a base name other than <b>sv</b>: it exits 1 on timeout or trouble
sending the command; if the <i>command</i> is <b>status</b>, it exits 3 if the service
is down, and 4 if the status is unknown; it exits 2 on wrong usage, and
151 on error.
<h2><a name='sect9'>See Also</a></h2>
<i>runsv(8)</i>, <i>chpst(8)</i>, <i>svlogd(8)</i>, <i>runsvdir(8)</i>, <i>runsvchdir(8)</i>,
<i>runit(8)</i>, <i>runit-init(8)</i> <p>
<i>http://smarden.org/runit/</i>
<h2><a name='sect10'>Author</a></h2>
Gerrit Pape &lt;pape@smarden.org&gt;
<p>
<hr><p>
<a name='toc'><b>Table of Contents</b></a><p>
<ul>
<li><a name='toc0' href='#sect0'>Name</a></li>
<li><a name='toc1' href='#sect1'>Synopsis</a></li>
<li><a name='toc2' href='#sect2'>Description</a></li>
<li><a name='toc3' href='#sect3'>Commands</a></li>
<ul>
<li><a name='toc4' href='#sect4'>Commands compatible to LSB init script actions</a></li>
<li><a name='toc5' href='#sect5'>Additional Commands</a></li>
</ul>
<li><a name='toc6' href='#sect6'>Options</a></li>
<li><a name='toc7' href='#sect7'>Environment</a></li>
<li><a name='toc8' href='#sect8'>Exit Codes</a></li>
<li><a name='toc9' href='#sect9'>See Also</a></li>
<li><a name='toc10' href='#sect10'>Author</a></li>
</ul>
</body>
</html>