Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:systemd

systemd

erste init-Skripte

Units

3 Ebenen der Konfiguration von Units:

  1. /lib/systemd/* und /usr/lib/systemd/*: (niedrigste Priorität) aus der Paketverwaltung, nicht anfassen.
  2. /run/systemd/*: dynamisch von systemd erzeugt
  3. /etc/systemd/*: (höchste Priorität) Hier dürfen sich Admins austoben

Unit-Files:

  • Defaults der Distribution
    • {/usr,}/lib/systemd/system/…
    • {/usr,}/lib/systemd/system/….d/*.conf
  • Voreinstellungen, siehe man systemd.preset
    • {/usr,}/lib/systemd/system-preset/
  • temporär, dynamisch von systemd erzeugt
    • /run/systemd/…
    • /run/systemd/….d/*.conf
  • Hier dürfen sich Admins austoben
    • /etc/systemd/system/…
    • /etc/systemd/system/….d/*.conf

Übersicht Unit-Files:

systemctl list-unit-files

Übersicht Dienste:

systemctl list-unit-files --type service

systemd ist aber auch weiterhin kompatibel zu den aus sysVinit bekannten Startskripten in /etc/init.d/

Systemd Architektur

ctl-Befehle

  • systemd-hostnamed –> hostnamectl
  • systemd-machined –> machinectl
  • systemd-journald –> journalctl
  • systemd-localed –> localectl
  • systemd-logind –> loginctl
  • systemd-shutdownd –> shutdown
  • systemd-timedated –> timedatectl
  • bootctl
  • busctl
  • networkctl
  • resolvectl

Systemd Unit Arten

  • service: von Systemd gestartete Anwendungen
  • socket: Socket Aktivierung
  • scopes: ausserhalb von systemd gestartete Anwendungen
  • slice: Resourcen für Prozessgruppen
  • path: Pfad Aktivierung
  • mount: Mountpoints (teilweise aus /etc/fstab)
  • automount: automatische Mountpoints
  • target: Gruppen von Units
  • timer: Service-Units zeitgesteuert starten

Standard Target

Das Standard-Boot-Target ändern
systemctl set-default graphical.target
Das Standard-Boot-Target anzeigen
systemctl get-default

oder

readlink /etc/systemd/system/default.target

Dienste starten und eintragen

Dienst sofort, einmalig starten

systemd nativ
systemctl start dienst.service
sysVinit kompatibel
service dienst start

Dienst immer beim Booten starten

systemd nativ
systemctl enable dienst.service
systemctl reenable dienst.service

Dienst sofort, einmalig beenden

systemd nativ
systemctl stop dienst.service
sysVinit kompatibel
service dienst stop

Dienst restart

systemd nativ
systemctl restart dienst.service
Nur starten, wenn der Dienst bereits aktiv ist
systemctl try-restart dienst.service
sysVinit kompatibel
service dienst restart

Dienst neu laden

systemd nativ
systemctl reload dienst.service
systemctl reload-or-restart dienst.service
systemctl reload-or-try-restart dienst.service
sysVinit kompatibel
service dienst reload

Dienst beim Booten nicht starten

systemd nativ
systemctl disable dienst.service

Dienst maskieren

dann kann er überhaupt nicht mehr gestartet werden

systemctl mask dienst.service
systemctl unmask dienst.service

Dienste anzeigen

systemd nativ
systemctl list-units -t service
systemctl list-units --type service --state=failed --all
systemctl list-unit-files -t service
systemctl is-enabled dienst.service
systemctl is-active dienst.service
sysVinit kompatibel
service --status-all

Targets

auflisten
systemctl --type=target
isolieren

alle anderen Targets beenden

systemctl isolate rescue.target
systemctl rescue
systemctl emergency
systemctl single
systemctl halt
systemctl poweroff
systemctl reboot
systemctl suspend
systemctl hibernate
systemctl hybrid-sleep
alle Units (Serices, ...) eines Targets anzeigen
systemctl list-dependencies graphical.target

Startoptionen eines Dienstes ändern

cp -a /lib/systemd/system/dienst.service /etc/systemd/system/
vim /etc/systemd/system/dienst.service

Besser

systemctl edit dienst.service

oder (für eigene units)

systemctl edit --full dienst.service

Syntax prüfen:

systemd-analyze verify dienst.service

Änderungen anzeigen:

systemd-delta

Änderungen aktivieren (nicht notwendig bei edit)

systemctl daemon-reload

Dienst neu starten:

systemctl restart dienst

Journald

Logind

systemd version 230: Now you can no longer expect a long running background processes to continue after logging out. I believe this breaks the expecations of many users. For example, you can no longer start a screen or tmux session, log out, and expect to come back to it. compiling systemd with –without-kill-user-processes or by setting

/etc/systemd/logind.conf
KillUserProcesses=no

Weitere Befehle und Subsysteme

Powersave verhindern
systemd-inhibit <cmd>
Virtualisierung erkennen
systemd-detect-virt

*.ctl

Beispiele

Doku

admin_grundlagen/systemd.txt · Zuletzt geändert: 2023/02/15 16:33 von ingo_wichmann