List and edit service configuration
Services or daemons (probably the name we are more familiar with) in linux, are programms or applications, which run or expect to run in the background. In essence , they are running without the need for the user to be aware of them all the time.
Listing running services
In order to visualize the running services in our system, we can execute the following command:
$ systemctl --type=service
Which gives us (I cut it off for just diaplaying purpose):
UNIT LOAD ACTIVE SUB DESCRIPTION alsa-restore.service loaded active exited Save/Restore Sound Card State bolt.service loaded active running Thunderbolt system service dbus.service loaded active running D-Bus System Message Bus iio-sensor-proxy.service loaded active running IIO Sensor Proxy service NetworkManager.service loaded active running Network Manager sddm.service loaded active running Simple Desktop Display Manager systemd-journald.service loaded active running Journal Service systemd-logind.service loaded active running User Login Management [email protected] loaded active running User Manager for UID 1000 wpa_supplicant.service loaded active running WPA supplicant ... LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 36 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
We also get a piece of help if we want to see the installed ones:
$ systemctl list-unit-files
Editing service configuration
Individually, per service, we can edit its configuration. In this example we are using
NetworkManager.service which is one of the main ones for handling our network connection. So let’s see its configuration:
$ sudo systemctl edit --full NetworkManager.service
And the output:
[Unit] Description=Network Manager Documentation=man:NetworkManager(8) Wants=network.target After=network-pre.target dbus.service Before=network.target [Service] Type=dbus BusName=org.freedesktop.NetworkManager #ExecReload=/bin/kill -HUP $MAINPID ExecStart=/usr/bin/NetworkManager --no-daemon Restart=on-failure # NM doesn't want systemd to kill its children for it KillMode=process ProtectSystem=true ProtectHome=read-only # We require file descriptors for DHCP etc. When activating many interfaces, # the default limit of 1024 is easily reached. LimitNOFILE=65536 [Install] WantedBy=multi-user.target Also=NetworkManager-dispatcher.service # We want to enable NetworkManager-wait-online.service whenever this service # is enabled. NetworkManager-wait-online.service has # WantedBy=network-online.target, so enabling it only has an effect if # network-online.target itself is enabled or pulled in by some other unit. Also=NetworkManager-wait-online.service
We edit and save, and bum!..We are done.
If you are interested in knowing more about services, check: