[id='understanding-systemd'] = Understanding systemd systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. systemd provides: * Aggressive parallelization capabilities * Uses socket and D-Bus activation for starting services * Offers on-demand starting of daemons, keeps track of processes using Linux cgroups * Supports snapshotting and restoring of the system state * Maintains mount and automount points * Implements an elaborate transactional dependency-based service control logic. The `systemctl` command is the primary tool to manage systemd. It combines the functionality of SysVinit's `service` and `chkconfig` commands into a single tool you can use to enable and disable services permanently or only for the current session. systemd manages _units_, which are representations of system resources and services. This following list shows the unit types that systemd can manage: service:: A service on the system, including instructions for starting, restarting, and stopping the service. socket:: A network socket associated with a service. device:: A device specifically managed with systemd. mount:: A mountpoint managed with systemd. automount:: A mountpoint automatically mounted on boot. swap:: Swap space on the system. target:: A synchronization point for other units. Usually used to start enabled services on boot. path:: A path for path-based activation. For example, you can start services based on the state of a certain path, such as whether it exists or not. timer:: A timer to schedule activation of another unit. snapshot:: A snapshot of the current systemd state. Usually used to rollback after making temporary changes to systemd. slice:: Restrivtion of resources through Linux Control Group nodes (cgroups). scope:: Information from systemd bus interfaces. Usually used to manage external system processes.