What is systemd?
This article has last been updated at .
What is systemd?
Systemd is a system and service manager on Linux distributions to start, stop, and monitor system services. It was created in 2010 by Lennart Poettering and is now the default service manager for many Linux distributions.
Systemd is a system and service manager. The name is short for ‘system daemon’, an ongoing service that manages the system. As it is also a service manager, it is responsible for start, stopping, and monitoring services. Systemd replaces the SysV init system and focuses on performance and resource management. It was created by Lennart Poettering in 2010, with Fedora Linux being the first to adopt it in May 2011. In 2015, several major Linux distributions started shipping with systemd.
If you are running a modern Linux distribution, changes are high that systemd is being used. This can be confirmed by using a command like systemctl
on the command-line.
Systemd units
An important part of systemd are its unit files. These files define how components interact with each other, including the definition of a service or a mount point.
Benefits of using systemd
Faster boot
Traditional init systems started services sequentially, which meant a service sometimes had to wait for another. Systemd performs a analysis of service dependencies and starts services independently. Due to this parallel start, the boot time decreases. An example of this is that while nginx should wait for the network to be up, it does not have to wait for a file system check that can be done in the background.
Generic service management tooling
Previously a Linux system had a set of scripts to start, stop, and restart services. Depending on the service, it was very basic or more advanced. Systemd uses a more generic way of defining services in the form of unit files. Each of these file define how the service should stop and start, optionally complemented with extra functions. Due to this new approach, it can better track the state of services, keep relevant event logs, and provide additional details.
Better resource management
Normal scripts in the traditional init systems had almost no capabilities to resource usage by services. With systemd making use of cgroups, it can monitor resource usage and set clear limitations. This increases the stability of the system and allows system administrators to earlier detect issues.
Centralized logging
Systemd offers a single place to store all log events, from the kernel, up to the services. With a binary format and storing metadata (like timestamps and process IDs), it allows for performing queries to retrieve specific data. This allows for quickly finding relevant entries for a particular service, or events from a specific moment in time.