aboutsummaryrefslogtreecommitdiffstats
path: root/doc/s6_process.html
blob: 0445d2dc1c93a10b0eca8ddd668b2ec5f4ed4dd5 (plain)
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<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-frontend: the s6 process command</title>
    <meta name="Description" content="s6-frontend: the s6 process command" />
    <meta name="Keywords" content="s6 ecosystem supervision service manager user interface init skarnet.org skarnet software process longrun daemon" />
    <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
  </head>
<body>

<p>
<a href="s6.html">The s6 command</a><br />
<a href="index.html">s6-frontend</a><br />
<a href="//skarnet.org/software/">Software</a><br />
<a href="//skarnet.org/">skarnet.org</a>
</p>

<h1> The <tt>s6 process</tt> command </h1>

<p>
 <tt>s6 process</tt> groups actions that target services that are managed
by an instance of <a href="//skarnet.org/software/s6/s6-svscan.html">s6-svscan</a>
running on the <a href="s6-frontend.conf.html">configured</a> <em>scandir</em>.
All commands (other than help) require the services in <em>servicenames...</em>
to be a valid reference to a <a
href="//skarnet.org/software/s6/servicedir.html">service directory</a> with an
instance of <a
href="//skarnet.org/software/s6/s6-supervise.html">s6-supervise</a> supervising it.
</p>

<p>
 The point of <tt>s6 process</tt> is to make it easier to send commands to
supervised services, by not requiring the user to know where the <em>scandir</em>
is or the details of <a href="//skarnet.org/software/s6/s6-svc.html"></a>.
Instead of <code>s6-svc -r /run/service/foobar</code>, the user can type
<code>s6 process restart foobar</code> for the same effect.
</p>

<h2 id="interface"> Interface </h2>

<pre>
     s6 process <em>subcommand</em> [ <em>subcommand_options...</em> ] [ <em>args...</em> ]
</pre>

<h2 id="subcommands"> Subcommands </h2>

<h3 id="help"> help </h3>

<p>
 <tt>s6 process help</tt> prints a short help message summarizing the options
and usage of the <tt>s6 process</tt> command. It is not as detailed as this page.
</p>

<h3 id="kill"> kill </h3>

<h4> Interface </h4>

<pre>
     s6 process kill [ -W | -w ] [ -s <em>sig</em> ] [ -t <em>timeout</em> ] <em>servicenames...</em>
</pre>

<ul>
 <li> <tt>s6 process kill <em>servicenames...</em></tt> sends a signal to every
supervised daemon listed by name in <em>servicenames</em>. </li>

 <li> Note that if the daemon dies as a consequence of receiving the signal,
it will normally be restarted by its supervisor. To kill a daemon and keep it
from restarting you need to use <a href="#stop"><tt>s6 process stop</tt></a>. </li>
</ul>

<h4> Options </h4>

<dl>
<dt> -W, --no-wait </dt>
<dd> Exit immediately, do not wait until the daemon has died and the service
has cleaned up. This is the default. </dd>

<dt> -w, --wait </dt>
<dd> Only exit when the daemon has died and the finish script of the service,
if any, has run. </dd>

<dt> -s <em>sig</em>, --signal=<em>sig</em> </dt>
<dd> Send signal <em>sig</em>. The default is SIGTERM. </dd>

<dt> -t <em>timeout</em>, --timeout=<em>timeout</em> </dt>
<dd> Only wait for at most <em>timeout</em> milliseconds; if the daemon still
hasn't died after that time, exit. The default is 0, meaning infinite: the
command can wait forever. This option is only effective when paired with the
<tt>--wait</tt> option. </dd>
</dl>


<h3 id="status"> status </h3>

<h4> Interface </h4>

<pre>
     s6 process status [ -L | -l ] <em>servicenames...</em>
</pre>

<ul>
 <li> <tt>s6 process status <em>servicenames...</em></tt> prints a line of
status for every
supervised daemon listed by name in <em>servicenames</em>. </li>
</ul>

<h4> Options </h4>

<dl>
<dt> -L, --without-logs </dt>
<dd> Only print the status for <tt>/run/service/foobar</tt> even if
<tt>/run/service/foobar/log</tt> exists. This is the default. </dd>

<dt> -l, --with-logs </dt>
<dd> If a <tt>/run/service/foobar/log</tt> service directory exists,
also print its status along with the one for <tt>/run/service/foobar</tt>.
Note that this option has <em>no effect</em> on loggers managed by
s6-rc, e.g. services defined in the store and managed by
<a href="s6_live.html"><tt>s6 live</tt></a>, because these loggers are
treated at separate, independent services. The <tt>-l</tt> option is
only useful with old-style logged s6 services that are not managed by
s6-rc. </dd>
</dl>

<h3 id="start"> start </h3>

<h4> Interface </h4>

<pre>
     s6 process start [ -P | -p ] [ -W | -w ] [ -t <em>timeout</em> ] <em>servicenames...</em>
</pre>

<ul>
 <li> <tt>s6 process start <em>servicenames...</em></tt> brings up every
supervised daemon listed by name in <em>servicenames</em>. </li>
</ul>

<h4> Options </h4>

<dl>
<dt> -P, --no-permanent </dt>
<dd> Only change the current state of the service, not its default state.
If there is a <a href="//skarnet.org/software/s6/servicedir.html">down file</a>
in <tt>/run/service/foobar</tt>, then <tt>s6 process start foobar</tt> will
bring the service up, but it will not be restarted if <tt>foobard</tt> dies. This
is the default. </dd>

<dt> -p, --permanent </dt>
<dd> Change the current and default states of the service.
If there is a <a href="//skarnet.org/software/s6/servicedir.html">down file</a>
in <tt>/run/service/foobar</tt>, then <tt>s6 process start foobar</tt> will
delete it, and the service will be automatically be restarted
if <tt>foobard</tt> dies. </dd>

<dt> -W, --no-wait </dt>
<dd> Exit immediately, do not wait until the service is up.
This is the default. </dd>

<dt> -w, --wait </dt>
<dd> Only exit when the service is up and (if applicable) ready. </dd>

<dt> -t <em>timeout</em>, --timeout=<em>timeout</em> </dt>
<dd> Only wait for at most <em>timeout</em> milliseconds; if the daemon still
isn't up and ready after that time, exit. The default is 0, meaning infinite: the
command can wait forever. This option is only effective when paired with the
<tt>--wait</tt> option. </dd>
</dl>

<h3 id="stop"> stop </h3>

<h4> Interface </h4>

<pre>
     s6 process stop [ -P | -p ] [ -W | -w ] [ -t <em>timeout</em> ] <em>servicenames...</em>
</pre>

<ul>
 <li> <tt>s6 process stop <em>servicenames...</em></tt> brings down every
supervised daemon listed by name in <em>servicenames</em>. </li>
</ul>

<h4> Options </h4>

<dl>
<dt> -P, --no-permanent </dt>
<dd> Only change the current state of the service, not its default state.
If there is no <a href="//skarnet.org/software/s6/servicedir.html">down file</a>
in <tt>/run/service/foobar</tt>, then <tt>s6 process stop foobar</tt> will
stop the service, but it will still be started whenever its supervisor is started.
This is the default. </dd>

<dt> -p, --permanent </dt>
<dd> Change the current and default states of the service.
If there is no <a href="//skarnet.org/software/s6/servicedir.html">down file</a>
in <tt>/run/service/foobar</tt>, then <tt>s6 process stop foobar</tt> will
create one, and the service will not be automatically started whenever its
supervisor is started. </dd>

<dt> -W, --no-wait </dt>
<dd> Exit immediately, do not wait until the service is down.
This is the default. </dd>

<dt> -w, --wait </dt>
<dd> Only exit when the service is down and any cleanups are done. </dd>

<dt> -t <em>timeout</em>, --timeout=<em>timeout</em> </dt>
<dd> Only wait for at most <em>timeout</em> milliseconds; if the finish script
still isn't done after that time, exit. The default is 0, meaning infinite: the
command can wait forever. This option is only effective when paired with the
<tt>--wait</tt> option. </dd>
</dl>

<h3 id="restart"> restart </h3>

<h4> Interface </h4>

<pre>
     s6 process restart [ -W | -w ] [ -t <em>timeout</em> ] <em>servicenames...</em>
</pre>

<ul>
 <li> <tt>s6 process restart <em>servicenames...</em></tt> restarts every
supervised daemon listed by name in <em>servicenames</em>. This is achieved by
issuing a stop followed by a start command on the targeted service(s). </li>
</ul>

<h4> Options </h4>

<dl>
<dt> -W, --no-wait </dt>
<dd> Exit immediately, do not wait until the service has restarted.
This is the default. </dd>

<dt> -w, --wait </dt>
<dd> Only exit when the new instance of the service is up and (if applicable) ready. </dd>

<dt> -t <em>timeout</em>, --timeout=<em>timeout</em> </dt>
<dd> Only wait for at most <em>timeout</em> milliseconds; if the service still
hasn't restarted after that time, exit. The default is 0, meaning infinite: the
command can wait forever. This option is only effective when paired with the
<tt>--wait</tt> option. </dd>
</dl>

</body>
</html>