Lion Cipher Lab

Map systemd service dependencies and find single points of failure

Why it matters

On a modern Linux server, systemd starts and supervises nearly every service, and it does so according to a web of declared dependencies. A unit can Require another (a hard dependency: if the required unit fails or is stopped, the dependent is stopped too), Want another (a soft, best-effort dependency), and be ordered After another (it will not start until the other has). Get this web right and the system comes up cleanly and fails gracefully; get it wrong and one shared service failing drags half the host down with it, or services race each other at boot and fail intermittently in ways that…

What you'll learn

Steps in this lab

  1. Three directives decide what a failure takes down
  2. The captured dependency list
  3. Write the analyzer
  4. Run it: blast radius, a race, and a cycle
  5. Fix each class, and the limits

Open the full interactive lab →