« Back to Systemd: Frequently Asked Questions

What does systemctl daemon-reload do?

Systemd stores the configuration for units, like services, in individual unit files. When changes are made to these units, a reload might be needed. This is where systemctl daemon-reload comes into play. But what exactly does the daemon-reload subcommand really do? In short: rerun generators, reload units files, recreate the dependency tree. Let’s have a look at the more detailed answer.

Running generators

Generators are helper scripts to convert non-native scripts to unit files that are usuable by systemd. These generators are used during the boot, but also when the daemon configuration is reloaded. In multiple phases all generators are started in parrallel, with the goal to minize the time tasks are waiting for each other to finish.

Reloading the units

The configuration of the units needs to be checked and reloaded. Any change that has a different condition than before, might trigger a reload or restart of a unit.

Dependency tree update

Systemd is focused on optimizing how units interact with each other, like which service depends on another service or unit. This set of dependencies is updated, so services are started in the right order.

Learn more about systemctl

This article uses the systemctl command to achieve its tasks. For this popular tool there is a cheat sheet available!

» Mastering the tool: systemctl

systemctl cheat sheet

Other questions related to systemd

Feedback

Is the described answer not working or incorrect, got another tip or question? Share your thoughts!