Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:systemd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

lpi1:systemd [2018/10/30 15:20]
lpi1:systemd [2023/02/15 16:33] (aktuell)
Zeile 1: Zeile 1:
 +====== systemd ======
 +===== erste init-Skripte =====
 +Durch Konfigurationsdateien ersetzt. Siehe http://​0pointer.de/​blog/​projects/​the-new-configuration-files und 
 +http://​fedoraproject.org/​wiki/​Systemd
  
 +===== Units =====
 +3 Ebenen der Konfiguration von Units:
 +
 +  - ''/​lib/​systemd/​*''​ und ''/​usr/​lib/​systemd/​*'':​ (niedrigste Priorität) aus der Paketverwaltung,​ nicht anfassen.
 +  - ''/​run/​systemd/​*'':​ dynamisch von systemd erzeugt
 +  - ''/​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 [[init|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 =====
 +  * [[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 ​
 +<file txt /​etc/​systemd/​logind.conf>​
 +KillUserProcesses=no
 +</​file>​
 +
 +===== Weitere Befehle und Subsysteme =====
 +  * [[Analyse]]
 +  * [[Snapshots]]
 +  * [[Systemd-Prozesse]]
 +  * [[Systemd-Resourcenkontrolle]]
 +  * [[Systemd-Security]]
 +
 +== Powersave verhindern ==
 +  systemd-inhibit <cmd>
 +
 +== Virtualisierung erkennen ==
 +  systemd-detect-virt
 +
 +==== *.ctl ====
 +  * [[loginctl]]
 +  * [[localectl]]
 +  * [[hostnamectl]]
 +  * [[timedatectl]]
 +  ​
 +===== Beispiele =====
 +  * [[Systemd Service Unit Files]]
 +  * [[Systemd Path Unit Files]]
 +
 +===== Doku =====
 +  * [[https://​www.freedesktop.org/​wiki/​Software/​systemd/​|Offizielle Doku auf freedesktop]]
 +  * [[http://​0pointer.net/​blog/​|PID 1 Blog von Poettering (nicht verbindlich)]]
 +
 +----
 +
 +  * [[https://​cre.fm/​cre209-das-linux-system|CRE Interview mit Lennart]]