Understanding the purpose of systemd targets
The legacy SysVinit system has runlevels, which define which services are to automatically start when the operating system enters a certain run state. For example, entering the graphical runlevel would bring up all of the services that allow the graphical mode to properly function. In systemd
, we have targets instead of runlevels. Several of these targets perform the same function that runlevels used to. That part is easy to understand.
Where the confusion comes in is that targets are more than just runlevels. As we'll soon see, there are many different targets, all with their own specific purposes. In systemd
, a target is a unit that groups together other systemd
units for a particular purpose. The units that a target can group together include services, paths, mount points, sockets, and even other targets.
By doing a systemctl list-units -t target
command, you can see all of the active targets on your system, which should look...