1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
<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’t
start with a dot or slash and doesn’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 ‘‘init
script’’.
<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’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’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’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’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’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 <pape@smarden.org>
<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>
|