Linux 101 : Systemd, Systemctl, Unit and Unit files

Systemd initializes the Linux system - processes, mount,.. -, after the boot process has finished.
It also the first process that starts with a PID=1.

Systemd manages the system as units and unit files.

The systemd units control services, mounts, swap spaces, sockets, ...

A unit file is a file that contains different parameters and data about the units - services, devices, mount points, ... -

Systemd also handles the targets - equivalent to runlevels -, which are a combination of units "working together" to produce a certain environment, for example the "" environment ,or the "" environment.

To know the default target that our system is running, we could use the below command:

To switch to a different target, for example the "", we use the below command:

To list all the unit-files, we use the below command:

To list all the unit-files for the services, we use the below command:

To list all the services, we use:

To list the "running" services, we use the below command:

The type could also be : socket, mount, swap, target, ...

The services could also have the below states:
  • enabled : enabled services start automatically.
  • disabled : are not taken into account during boot time.
  • static : can't be enabled or disabled
  • masked : masked services can't be started.
Services live in "/usr/lib/systemd/system" or "/lib/systemd/system"

Disabled services will not start at boot time, and we would have to start them manually is need be.
We can disable a service using the below command:

Masked services can't be started. We could mask a service using he below command:

Unit files stored in the "/usr/lib/systemd/system" directory, have the below format:


Leave as a comment: