The s6-linux-init program

s6-linux-init is a program that is meant to run as pid 1, as a stage 1 init: it performs the necessary early system preparation and execs into s6-svscan.


     s6-linux-init [ -c basedir ] [ -p initial_path ] [ -s env_store ] [ -m umask ] [ -d slashdev ] [ -D initdefault ] [ -n | -N ] [ -C ] [ -B ] [ args... ]


These options should exactly mirror the options with the same name that have been given to s6-linux-init-maker. If there is a discrepancy, the system might not boot.

Early preparation

When booting a system, s6-linux-init performs the following operations:

By the time rc.init runs, s6-svscan is running as pid 1 and has spawned its early services - at least the catch-all logger, and the other services, including the early getty if it has been defined, are started in parallel and will be ready instantly. rc.init can then perform stage 2 of the initialization process, i.e. the handoff to the service manager.

Exit codes

s6-linux-init never exits. It spawns the rc.init script and execs into s6-svscan, which runs forever until the machine stops or reboots.