systemctl-daemon-reload
Reload systemd unit configurations
TLDR
Reload systemd to apply changes in unit files
SYNOPSIS
systemctl daemon-reload
PARAMETERS
daemon-reload
This is a subcommand for systemctl that instructs the systemd manager to re-read all unit files and rebuild its dependency tree. It does not accept additional options or arguments directly.
DESCRIPTION
The systemctl daemon-reload command instructs the systemd manager to re-read its configuration files from disk, including all unit files (like service files, mount files, socket files, etc.) that define how services and other system resources are managed. This command is crucial after creating new unit files, modifying existing ones, or installing new packages that include systemd unit definitions.
It does not restart any services; it merely tells systemd to update its internal representation of the available units and their dependencies. After a daemon-reload, subsequent systemctl commands (such as start, stop, enable, disable) will operate on the newly loaded or modified configurations. Without running this command, systemd might continue to use outdated configurations, leading to unexpected behavior or a failure to recognize new services or changes.
CAVEATS
- systemctl daemon-reload only reloads the systemd manager's configuration; it does not restart or stop any running services. If a service's unit file has been modified and you want those changes to take effect for a running service, you must follow daemon-reload with systemctl restart <service> or systemctl try-restart <service>.
- It's possible for systemd to encounter issues during reload if unit files contain syntax errors. While it attempts to gracefully handle errors, it's good practice to validate unit files (e.g., with systemd-analyze verify <unit_file>) before reloading.
- This command typically requires root privileges (or equivalent via sudo) to execute successfully.
WHEN TO USE
This command is essential after:
- Creating a new systemd unit file (e.g., a new service, timer, or mount).
- Modifying an existing systemd unit file (e.g., changing ExecStart path, dependencies, or environment variables).
- Installing a package that includes new or updated systemd unit files.
- Removing a systemd unit file.
PERMISSIONS
Running systemctl daemon-reload typically requires administrative privileges. Users will generally execute this command with sudo (e.g., sudo systemctl daemon-reload).
HISTORY
The systemctl command is an integral part of systemd, which was introduced in 2010 to replace traditional SysVinit and Upstart init systems in Linux distributions. As systemd gained widespread adoption across major Linux distributions (such as Fedora, RHEL, Debian, Ubuntu, openSUSE, Arch Linux) starting around 2011-2015, systemctl became the de facto standard command-line utility for interacting with the systemd manager. The daemon-reload subcommand has been a fundamental part of systemctl since its inception, addressing the crucial need to dynamically update the manager's view of unit configurations without requiring a full system reboot or a restart of the systemd daemon itself.


