What systemd Replaced and Why

Before systemd 142,543 , most Linux systems booted with SysV init: a shell script per service in /etc/init.d/, run one after another in the order of numbered symlinks such as /etc/rc2.d/S20apache2. A script started its daemon, wrote a PID file and forgot about it. If the daemon crashed, nothing noticed; if the PID file went stale, stop killed the wrong process or nothing at all.

Ubuntu 225 moved to the event-driven Upstart in 6.10 (2006). systemd, by Lennart Poettering and Kay Sievers of Red Hat, was first released on 30 March 2010 and became the default in Fedora 15 1,480 (2011), RHEL 7 664 (June 2014), and Debian 8 319 and Ubuntu 15.04 (April 2015). It replaced scripts with declarative unit files and PID files with control groups, kernel containers that every child process inherits and cannot leave, so systemd always knows which processes are a service's and the instant the main one dies.

Ubuntu 26.04 LTS ships systemd 259 (systemctl --version); upstream reached v262 on 22 September 2026, and everything here works on both. Alpine (OpenRC) and most Docker 514 containers (no init) are the exceptions you will meet (A LAMP Stack in Docker Compose).