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 the 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 the SlackBuild script like below: SKEL_DIR=/path/to/directory ./s6-linux-init.SlackBuild The init system created by s6-linux-init will need an early boot tmpfs in order to work properly. By default, s6-linux-init will assume that this initial 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 Upstream recommends building skarnet.org softwares with static libraries as most of skarnet.org softwares are small enough that using 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 softwares, 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.