aboutsummaryrefslogtreecommitdiffstats
s6-linux-init - tools for a Linux init system

Software
skarnet.org

s6-linux-init

What is it?

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. It is a part of the s6 ecosystem.

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


Installation

Requirements

  • A Linux-based system with a standard C development environment
  • GNU make, version 3.81 or later
  • skalibs version 2.15.0.0 or later. It's a build-time requirement. It's also a run-time requirement (for s6-linux-init-maker) as well as a boot-time requirement (i.e. a run-time requirement for the programs used when you boot a system created with s6-linux-init-maker) if you link against the shared version of the skalibs library.
  • execline version 2.9.9.0 or later. It is a build-time and boot-time requirement.
  • s6 version 2.15.0.0 or later. It is a build-time and boot-time requirement.

The following optional dependencies are also supported:

  • If you're using musl and want nsswitch-like functionality: nsss version 0.2.1.2 or later (build-time and boot-time)
  • If you want secure utmp functionality: utmps version 0.1.3.3 or later (build-time and boot-time)

Licensing

s6-linux-init is free software. It is available under the ISC license.

Download

Compilation

  • See the enclosed INSTALL file for installation details.

Upgrade notes

  • This page lists the differences to be aware of between the previous versions of s6-linux-init and the current one.

Reference

General

Commands

Unless more details are provided in an Exit codes section of a specific page, all these commands exit 0 on success, 111 if they encounter a temporary error (such as a system call failure) and 100 if they encounter a permanent error (such as a misuse).

Related resources

  • s6-linux-init is discussed on the skaware and supervision mailing-lists.
  • There is a #s6 IRC channel on OFTC. Sometimes people are there and even answer questions.

s6-linux-init manual pages