Systemd

From Edgar BV Wiki
Jump to navigation Jump to search

services

You can use the service or systemctl commands to work with these. Apparently systemctl is more direct and service is a wrapper script.

   systemctl start|stop|restart|status service

To find out if a service is enabled / will start up at boot

   systemctl is-enabled service

To enable|disable it at boot

   systemctl enable|disable service

To get a script to start as a service

  vi /usr/lib/systemd/system/SCRIPTNMAME.service
[Unit]
Description=Evologger instance
Documentation=https://wiki.edgarbv.com/index.php?title=My_guide_to_grafana_/_influxdb
Wants=network-online.target
After=network-online.target
After=grafana.service grafana-server.service  mariadb.service mysql.service

[Service]
User=evologger
Group=evologger
Restart=on-failure
ExecStart=/opt/evologger/evologger.sh &>>/var/log/evologger

[Install]
WantedBy=default.target

After editing these scripts always do

  systemctl daemon-reload

To show all services, do the following. Add | grep enabled to see which are enabled.

  systemctl list-unit-files

logs

How To Use Journalctl to View and Manipulate Systemd Logs

To filter by unit (a unit can be all kinds of stuff)

   journalctl -u service|username|groupname

show all information (instead of truncated)

   journalctl -a

to throw the output to stdout instead of the less pager

   journalctl --no-pager

to follow output live

   journalctl -f

networking

setting up interfaces

https://www.freedesktop.org/software/systemd/man/systemd.network.html

he main network file must have the extension .network; other extensions are ignored. Networks are applied to links whenever the links appear.

The .network files are read from the files located in the system network directories /usr/lib/systemd/network and /usr/local/lib/systemd/network, the volatile runtime network directory /run/systemd/network and the local administration network directory /etc/systemd/network.

he main network file must have the extension .network; other extensions are ignored. Networks are applied to links whenever the links appear.

The .network files are read from the files located in the system network directories /usr/lib/systemd/network and /usr/local/lib/systemd/network, the volatile runtime network directory /run/systemd/network and the local administration network directory /etc/systemd/network.

resolving

https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html# Systemd builds a stub / cache on 127.0.0.53, which you can see in /etc/resolv.conf (which links to /run/systemd/stub-resolv.conf). 3rd party programmes will sometimes edit /run/systemd/resolve/resolv.conf where you can see what else is resolving.

You also specify DNS in the Networks section eg

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.22

Then restart:

  sudo service systemd-networkd restart

Also look into:

   netplan apply

Then check:

   systemd-resolve --status wlo1


   In addition to /etc/systemd/network, drop-in ".d" directories can be placed in /lib/systemd/network or /run/systemd/network directories. Drop-in files in /etc take precedence over those in /run which in turn take precedence over those in /lib. Drop-in files under any of these directories take precedence over the main netdev file wherever located. (Of course, since /run is temporary and /usr/lib is for vendors, it is unlikely drop-ins should be used in either of those places.)

Another approach disable the DNSStubListener for usage with dnsmasq:

  sudo nano /etc/systemd/resolved.conf:
  DNSStubListener=false