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
|
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="dark light" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="en" />
<title>s6-frontend - a frontend to the s6 ecosystem</title>
<meta name="Description" content="s6-frontend - a frontend to the s6 ecosystem" />
<meta name="Keywords" content="s6 s6-rc frontend administration root laurent bercot ska skarnet init" />
<!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
</head>
<body>
<p>
<a href="//skarnet.org/software/">Software</a><br />
<a href="//skarnet.org/">skarnet.org</a>
</p>
<h1> s6-frontend </h1>
<h2> What is it ? </h2>
<p>
s6-frontend is a frontend to the s6 init system. It provides
the one-stop-shop <a href="s6.html">s6</a> command, that is used
to address every part of the init system.
</p>
<h3> Huh? </h3>
<p>
The <em>s6 init system</em> is made of several different parts:
</p>
<ul>
<li> The <a href="//skarnet.org/software/s6/">s6 process supervision suite</a>,
which is the foundation of the s6 ecosystem. While this package is named <em>s6</em>,
that name is generally used to mean "the whole thing", so we will refer to it
as <em>s6-supervision</em> when the context makes it necessary. The goal of a
process supervision suite is to give administrators an environment to start and
control daemons in a reliable and flexible way. </li>
<li> The <a href="//skarnet.org/software/s6-rc/">s6-rc service manager</a>,
which is a management framework built on top of s6-supervision. The goal of a
service manager is to start and stop services on a system while managing
dependencies between those services. </li>
<li> The <a href="//skarnet.org/software/s6-linux-init">s6-linux-init init package</a>,
which is an add-on to s6-supervision, making it usable as an init system for
Linux in addition to a process supervisor. </li>
</ul>
<p>
The separation in different packages is purposeful: the goal is to keep the
system entirely modular and not tie it to a particular use. s6-supervision
is often used on its own, in environments that already have an init system
(no need for s6-linux-init) and a service manager (no need for s6-rc).
For the same purpose of modularity, s6 follows an approach of "one functionality,
one tool", sometimes to the extreme: the s6-supervision package, as of
2.15.1.0, hosts 75 binaries.
</p>
<p>
This approach is successful in that it provides comprehensive functionality
with maximum efficiency: despite its growth, s6 remains extremely
<em>lightweight</em> in run-time resource usage. However, a recurring
pattern is that potential users are often daunted by s6's apparent complexity.
</p>
<p>
s6-frontend is an attempt at managing users' interface expectations. It
provides <em>one</em> user-facing command, named <strong>s6</strong>, that
takes intuitively-named subcommands in order to control all the important
parts of an s6-based system.
</p>
<hr />
<ul>
<li> An <a href="overview.html">overview</a> of s6-frontend </li>
</ul>
<hr />
<h2> Installation </h2>
<h3> Requirements </h3>
<ul>
<li> A Linux-based system with a standard C development environment </li>
<li> GNU make, version 3.81 or later </li>
<li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version
2.15.1.0 or later </li>
<li> Optional: <a href="//skarnet.org/software/nsss/">nsss</a> version
0.2.1.3 or later. You only need this if all your distribution is built
with it. If you're not sure, you don't need it. </li>
<li> <a href="//skarnet.org/software/execline/">execline</a> version
2.9.9.2 or later </li>
<li> <a href="//skarnet.org/software/s6/">s6</a> version
2.15.1.0 or later </li>
<li> <a href="//skarnet.org/software/s6-rc/">s6-rc</a> version
0.7.0.0 or later </li>
<li> Optional: <a href="//skarnet.org/software/nsss/">nsss</a> version
0.2.1.2 or later </li>
<li> Optional: <a href="//skarnet.org/software/s6-linux-init/">s6-linux-init</a> version
1.2.0.2 or later </li>
<li> Optional: <a href="https://en.wikipedia.org/wiki/Util-linux">util-linux</a> version
2.41.2 or later </li>
</ul>
<ul>
<li> All the skaware packages are build-time dependencies as well as run-time dependencies.
<ul>
<li> skalibs is only a run-time dependency if you link the binaries against
the shared version of the skarnet library. </li>
</ul> </li>
<li> util-linux is a run-time dependency only. </li>
<li> It is currently possible to use s6-frontend on non-Linux systems if the dependencies to
util-linux and to s6-linux-init are disabled at build time, but there is no guarantee that it
will remain possible in the future. Unfortunately, APIs for init systems have diverged too much
across operating systems. </li>
</ul>
<h3> Licensing </h3>
<p>
s6-frontend is free software. It is available under the
<a href="https://opensource.org/licenses/ISC">ISC license</a>.
</p>
<h3> Download </h3>
<ul>
<li> The current released version of s6-frontend is
<a href="s6-frontend-0.1.0.0.tar.gz">0.1.0.0</a>.
You can access its checksum <a href="s6-frontend-0.1.0.0.tar.gz.sha256">here</a>. </li>
<li> Alternatively, you can checkout a copy of the
<a href="//git.skarnet.org/cgit/s6-frontend/">s6-frontend
git repository</a>:
<pre> git clone git://git.skarnet.org/s6-frontend </pre> </li>
<li> There's also a
<a href="https://codeberg.org/skarnet/s6-frontend">Codeberg mirror</a>, or a
<a href="https://github.com/skarnet/s6-frontend">GitHub mirror</a>, or a
<a href="https://git.sr.ht/~skarnet/s6-frontend">SourceHut mirror</a>
of the s6-frontend git repository. </li>
</ul>
<h3> Compilation </h3>
<ul>
<li> See the enclosed INSTALL file for installation details. </li>
</ul>
<h3> Upgrade notes </h3>
<ul>
<li> <a href="upgrade.html">This page</a> lists the differences to be aware of between
the previous versions of s6-frontend and the current one. </li>
</ul>
<hr />
<h2> Reference </h2>
<h3> User-facing commands </h3>
<ul>
<li> <a href="s6.html">The <tt>s6</tt> program</a>, which contains several commands. The main ones have their own pages:
<ul>
<li> <a href="s6_live.html"><tt>s6 live</tt></a> </li>
<li> <a href="s6_process.html"><tt>s6 process</tt></a> </li>
<li> <a href="s6_repository.html"><tt>s6 repository</tt></a> </li>
<li> <a href="s6_set.html"><tt>s6 set</tt></a> </li>
<li> <a href="s6_system.html"><tt>s6 system</tt></a> </li>
</ul> </li>
</ul>
<h3> Internal programs </h3>
<ul>
<li> <a href="s6-frontend.html">The <tt>s6-frontend</tt> program</a> </li>
<li> <a href="s6-frontend-helper-echo.html">The <tt>s6-frontend-helper-echo</tt> program</a> </li>
<li> <a href="s6-frontend-helper-kill.html">The <tt>s6-frontend-helper-kill</tt> program</a> </li>
</ul>
<h3> Configuration </h3>
<ul>
<li> <a href="s6.conf.html">The <tt>/etc/s6.conf</tt> configuration file </a> </li>
</ul>
<h2> Related resources </h2>
<ul>
<li> <tt>s6-frontend</tt> is discussed on the
<a href="//skarnet.org/lists/#supervision">supervision</a> mailing-list. </li>
<li> There is a <tt>#s6</tt> IRC channel on OFTC. Sometimes people
are there and even answer questions. </li>
</ul>
<h3> s6-frontend manual pages </h3>
<ul>
<li> <a href="https://git.sr.ht/~humm">Lennart Jablonka</a> is providing
the s6-frontend documentation as a
<a href="https://git.sr.ht/~humm/s6-frontend-man-pages">set of man pages</a>. </li>
</ul>
</body>
</html>
|