Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:systemd [2015/04/22 13:24] stefan_miethke [weitere Befehle] |
admin_grundlagen:systemd [2023/02/15 16:33] (aktuell) ingo_wichmann [Systemd Architektur] |
||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
http://fedoraproject.org/wiki/Systemd | http://fedoraproject.org/wiki/Systemd | ||
- | ===== runlevel Start-Skripte ===== | + | ===== Units ===== |
- | Die native system Konfiguration liegt in | + | 3 Ebenen der Konfiguration von Units: |
- | * ''/lib/systemd/system/*.service'', ''/usr/lib/systemd/system/*.service'' und | + | |
- | * ''/etc/systemd/system/*.service'' | + | |
- | systemd ist aber auch weiterhin kompatibel zu den aus [[init|sysVinit]] bekannten Startskripten in | + | - ''/lib/systemd/*'' und ''/usr/lib/systemd/*'': (niedrigste Priorität) aus der Paketverwaltung, nicht anfassen. |
- | * ''/etc/init.d/'' | + | - ''/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 ==== | ==== Dienste starten und eintragen ==== | ||
Zeile 23: | Zeile 78: | ||
== systemd nativ == | == systemd nativ == | ||
systemctl enable dienst.service | systemctl enable dienst.service | ||
- | + | systemctl reenable dienst.service | |
- | == sysVinit kompatibel == | + | |
- | chkconfig dienst on | + | |
=== Dienst sofort, einmalig beenden === | === Dienst sofort, einmalig beenden === | ||
Zeile 33: | Zeile 86: | ||
== sysVinit kompatibel == | == sysVinit kompatibel == | ||
service dienst stop | 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 === | === Dienst beim Booten nicht starten === | ||
Zeile 38: | Zeile 109: | ||
systemctl disable dienst.service | systemctl disable dienst.service | ||
- | == sysVinit kompatibel == | + | === Dienst maskieren === |
- | chkconfig dienst off | + | dann kann er überhaupt nicht mehr gestartet werden |
+ | systemctl mask dienst.service | ||
+ | systemctl unmask dienst.service | ||
=== Dienste anzeigen === | === Dienste anzeigen === | ||
== systemd nativ == | == systemd nativ == | ||
systemctl list-units -t service | 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 == | == sysVinit kompatibel == | ||
service --status-all | service --status-all | ||
- | ===== journalctl ===== | ||
- | gleich ans Ende springen | ||
- | journalctl -e | ||
- | follow file mit allem und catalog | + | === Targets === |
- | journalctl -f -a -x | + | == 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 Felder aufschlüsseln | + | == alle Units (Serices, ...) eines Targets anzeigen == |
- | journalctl -o verbose | + | systemctl list-dependencies graphical.target |
- | seit dem letztem Boot | + | ===== Startoptionen eines Dienstes ändern ===== |
- | journalctl -b | + | cp -a /lib/systemd/system/dienst.service /etc/systemd/system/ |
+ | vim /etc/systemd/system/dienst.service | ||
- | Meldungen eines bestimmten Dienstes (seit dem letzten Booten ausführlich mit catalog) | + | Besser |
- | journalctl _SYSTEMD_UNIT=sshd.service -b -x | + | 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]] | ||
| | ||
- | ===== weitere Befehle ===== | + | ===== Beispiele ===== |
- | alle von systemd verwalteten Prozesse anzeigen: | + | * [[Systemd Service Unit Files]] |
- | systemd-cgls | + | * [[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]] |