home / swappables / inits

Init systems

Who brings your machine up. Your call.

The init system is the first thing that runs after the kernel — it boots the rest of your system and usually supervises services. It's also one of the most fought-over pieces of modern Linux. Keru's answer to the fight is simple: pick one yourself.

runit

Small, fast, BSD-style. Default in Keru — fast boot, simple service supervision, based on the runit process supervisor.

s6

The skarnet suite's init and service manager. Dependency-free, designed-for-service supervision, very small.

openrc

The classic Gentoo-style init. Compatible with sysvinit-style init.d, predictable "exclusive" service tree.

systemd

The dominant init — service manager, logind, udev, resolved, timedate, all in one. If you want it, it's a choice, not an assumption.

busybox-init

The bare init from busybox. Minimalist, tiny static binaries, closest to "nothing but a process supervisor."

sysvinit

The classic System V init. Simple runlevels, init.d scripts, historically the baseline Linux init.

dinit

A modern, fast, dependency-oriented init and service manager. Parallel boot, small footprint.

shepherd

GNU's service manager (init). Guile-based, declarative services, part of the GNU project.

Notes on pairing

Some combinations are easier than others. The stability check in the installer flags pairs that aren't yet proven (for example, musl + systemd), but never blocks them — the warn-not-block stance.

The init you pick is baked in at first boot. It's a choice you make once, deliberately, at install — not inherited from a default you never saw.

← All swappables