mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
0f19f27b72
Minor README fix. Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
77 lines
3.3 KiB
Text
77 lines
3.3 KiB
Text
s6-linux-init is a set of minimalistic tools used to create a s6-based
|
|
init system, including a /sbin/init binary, on a Linux kernel.
|
|
|
|
The resulting architecture follows the Unix philosophy (one job -> one
|
|
tool) as closely as possible, and is fully dedicated to the s6 way of
|
|
managing a system:
|
|
- s6-svscan runs as process 1 for the whole machine lifetime.
|
|
- Every daemon is supervised.
|
|
- No logs are ever lost.
|
|
- Policy is entirely left to the user. Typically, any service manager
|
|
can be run on top of s6-linux-init.
|
|
|
|
Nevertheless, the architecture is fully compliant with various empirical
|
|
and historical specifications. For instance, it provides:
|
|
- utmp management compatible with sysvinit,
|
|
- runlevel management, with a configurable default, overridable from the
|
|
kernel command line,
|
|
- sysvinit-like commands to shut the system down, including a shutdown
|
|
command that follows the LSB specification.
|
|
|
|
Optional dependencies:
|
|
nsss (https://skarnet.org/software/nsss/) (not available at SBo)
|
|
utmps (https://skarnet.org/software/utmps/) (not available at SBo)
|
|
|
|
NOTE:
|
|
s6-linux-init has some skeleton files that will be used to build a
|
|
complete s6-based init system. These files will be placed under
|
|
/etc/s6-linux-init/skel by default. You can change this by passing
|
|
SKEL_DIR=/path/to/directory environment variable to this SlackBuild
|
|
script like below:
|
|
|
|
SKEL_DIR=/path/to/directory ./s6-linux-init.SlackBuild
|
|
|
|
The s6-based init system created by s6-linux-init needs an early boot
|
|
tmpfs to work properly. By default, the created init system assumes that
|
|
this tmpfs will be mounted on /run. You can change this by passing
|
|
TMPFS_DIR=/path/to/directory to the script like below:
|
|
|
|
TMPFS_DIR=/path/to/directory ./s6-linux-init.SlackBuild
|
|
|
|
At some point in boot time, an instance of s6-svscan will become PID 1,
|
|
using $TMPFS_DIR/service as its scan directory by default. This can be
|
|
altered by passing SCAN_DIR=path/to/directory to the script, changing
|
|
the scan directory to $TMPFS_DIR/path/to/directory. For example, if you
|
|
want to change the scan directory to /run/s6/service, you can pass
|
|
SCAN_DIR=s6/service to the script like below:
|
|
|
|
SCAN_DIR=s6/service ./s6-linux-init.SlackBuild
|
|
|
|
Note that we don't use absolute path for SCAN_DIR here, since it is
|
|
relative to $TMPFS_DIR, which defaults to /run (as mentioned
|
|
previously).
|
|
|
|
Upstream recommends building skarnet.org software with static libraries,
|
|
as most of skarnet.org software are small enough that shared libraries
|
|
are generally not worth using. Therefore, by default, shared libraries
|
|
are not built and binaries are linked against the static versions of the
|
|
skarnet.org libraries.
|
|
|
|
If you want to also build the shared libraries, pass BUILD_SHARED=yes to
|
|
the script like below:
|
|
|
|
BUILD_SHARED=yes ./s6-linux-init.SlackBuild
|
|
|
|
Similarly, to avoid building the static libraries, you can pass
|
|
BUILD_STATIC=no to the script. For example, to only build the shared
|
|
libraries and not the static ones, you can do something like:
|
|
|
|
BUILD_SHARED=yes BUILD_STATIC=no ./s6-linux-init.SlackBuild
|
|
|
|
If you just want to build and use skarnet.org software, building only
|
|
the static libraries should be sufficient.
|
|
|
|
If you want the binaries to be linked against the shared versions of the
|
|
skarnet.org libraries, pass LINK_SHARED=yes to the script, i.e.,
|
|
|
|
LINK_SHARED=yes ./s6-linux-init.SlackBuild
|