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
|
<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-utils - skarnet's tiny Linux-specific utilities</title>
<meta name="Description" content="s6-linux-utils - skarnet's tiny Linux-specific utilities" />
<meta name="Keywords" content="s6 unix administration root laurent bercot ska skarnet linux utilities tiny linux-specific" />
<!-- <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-linux-utils </h1>
<h2> What is it ? </h2>
<p>
s6-linux-utils is a set of minimalistic Linux-specific system utilities.
</p>
<p>
Prefixing the name of this package — and the names of the binaries it
provides — with <tt>s6-</tt> was a naming mistake. It happened in the
early days of the
<a href="//skarnet.org/software/s6/">s6</a> project, before it grew and
became an ecosystem focused on supervision, service management and init;
despite sharing the same author and the same philosophy, and being designed
to work with it, <tt>s6-linux-utils</tt> is <strong>not</strong>,
stricto sensu, part of the s6 ecosystem, and if you arrived here while trying
to understand what <a href="//skarnet.org/software/s6/">s6</a> is, you are
on the wrong page. I apologize for the confusion.
</p>
<hr />
<h2> Installation </h2>
<h3> Requirements </h3>
<ul>
<li> A Linux-based system with a standard C development environment.
The Linux kernel must be 3.5 or later. </li>
<li> GNU make, version 3.81 or later </li>
<li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version
2.13.1.0 or later. It's a build-time requirement. It's also a run-time
requirement if you link against the shared version of the skalibs
library. </li>
</ul>
<h3> Licensing </h3>
<p>
s6-linux-utils 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-linux-utils is
<a href="s6-linux-utils-2.6.1.2.tar.gz">2.6.1.2</a>. </li>
<li> Alternatively, you can checkout a copy of the
<a href="//git.skarnet.org/cgi-bin/cgit.cgi/s6-linux-utils/">s6-linux-utils
git repository</a>:
<pre> git clone git://git.skarnet.org/s6-linux-utils </pre> </li>
<li> There's also a
<a href="https://github.com/skarnet/s6-linux-utils">GitHub mirror</a>
of the s6-linux-utils git repository. </li>
</ul>
<h3> Compilation </h3>
<ul>
<li> See the enclosed INSTALL file for installation details. </li>
<li> Starting with version 2.6.1.0, you can use the
<tt>--enable-multicall</tt> configure option to save disk space. </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-linux-utils and the current one. </li>
</ul>
<hr />
<h2> Reference </h2>
<h3> Commands </h3>
<p>
All these commands exit 111 if they encounter a temporary error, and
100 if they encounter a permanent error - such as a misuse. They exit
127 if they're trying to execute into a program and cannot find it, and
126 if they fail to execute into a program for another reason.
</p>
<p>
(Miscellaneous tools)
</p>
<ul>
<li><a href="rngseed.html">The <tt>rngseed</tt> program</a></li>
<li><a href="s6-chroot.html">The <tt>s6-chroot</tt> program</a></li>
<li><a href="s6-freeramdisk.html">The <tt>s6-freeramdisk</tt> program</a></li>
<li><a href="s6-hostname.html">The <tt>s6-hostname</tt> program</a></li>
<li><a href="s6-logwatch.html">The <tt>s6-logwatch</tt> program</a></li>
<li><a href="s6-mount.html">The <tt>s6-mount</tt> program</a></li>
<li><a href="s6-pivotchroot.html">The <tt>s6-pivotchroot</tt> program</a></li>
<li><a href="s6-ps.html">The <tt>s6-ps</tt> program</a></li>
<li><a href="s6-swapoff.html">The <tt>s6-swapoff</tt> program</a></li>
<li><a href="s6-swapon.html">The <tt>s6-swapon</tt> program</a></li>
<li><a href="s6-umount.html">The <tt>s6-umount</tt> program</a></li>
</ul>
<p>
(Multicall configuration)
</p>
<ul>
<li> The <a href="s6-linux-utils.html"><tt>s6-linux-utils</tt></a> multicall binary </li>
</ul>
<h2> Related resources </h2>
<ul>
<li> <tt>s6-linux-utils</tt> is discussed on the
<a href="//skarnet.org/lists/#skaware">skaware</a> mailing-list. </li>
</ul>
<h2> Similar work </h2>
<p>
There are several good projects aiming to provide a minimal userspace
environment for Linux, suitable for embedded systems. Among them, for
instance:
</p>
<ul>
<li> <a href="https://busybox.net/">BusyBox</a> </li>
<li> <a href="https://landley.net/code/toybox/">toybox</a> </li>
<li> <a href="https://core.suckless.org/sbase">sbase</a> and
<a href="https://core.suckless.org/ubase">ubase</a> </li>
</ul>
<p>
Most of the time, these projects aim to implement standard commands in a
lightweight way, and
they do it well enough. So, although some standard reimplentation already
exists in s6-linux-utils and its sibling package
<a href="//skarnet.org/software/s6-portable-utils/">s6-portable-utils</a>,
it is an explicit non-goal of those packages to duplicate the work of those
projects, and no more rewriting of standard commands will occur.
</p>
</body>
</html>
|