openskills.info
systemd Fundamentals logoCourse Preview

systemd Fundamentals

systemd is the system and service manager used by many Linux distributions. It runs as process ID 1, starts and supervises services, models system resources as units, and connects service state with dependency ordering and journal logs.

itLinux

Don't Panic: the service manager is holding the map

systemd is the Linux component that arrives very early, becomes process ID one, and is then handed a rather large clipboard. Its job is not to run every command in one heroic line. Its job is to coordinate named resources called units.

A unit might be a service, a timer, a socket, a mount, or a target. When you ask for one to start, systemctl sends the request to the manager. The manager builds a transaction: a collection of jobs and their relationships. That is why boot is a graph rather than a long ceremonial shell script.

The graph has two species of line, which are easy to confuse because both look bossy. Wants= and Requires= decide what else joins the transaction. After= and Before= decide order when both units are already present. An After= on its own does not summon the other service from the void. Combining the two is often the intended contract, but they remain different jobs in different hats.

Unit files also have a geography. Package-provided definitions normally live under /usr/lib/systemd/system/. Local administration lives under /etc/systemd/system/, which takes precedence. A drop-in changes the selected part without copying the whole vendor unit. This is less dramatic than maintaining a private fork of a service definition, which is exactly why it helps.

When a unit file changes, daemon-reload tells the manager to reread definitions. It does not restart the running process. Starting is also different from enabling: one activates now, while the other creates links for future activation. The command names are not being difficult; they are distinguishing time from policy.

For a failure, begin with evidence. systemctl status shows the current unit state and recent messages. journalctl -u narrows the journal to the unit. systemctl cat shows the effective configuration. Then inspect dependencies, make the narrowest change, reload definitions if they changed, and verify the application itself.

That last part matters. An active unit has met its configured lifecycle contract. It has not signed a certificate promising that every user receives the correct response. systemd coordinates resources on one host; fleet rollout, distributed failover, and application health remain somebody else's paperwork. The durable map is units, jobs, state, and logs. Keep it nearby when the clipboard becomes exciting.

Where this skill leads

Relevant careers

See how this topic contributes to broader role-level skill maps.

Sources