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).