{{{#!vorlage Wissen [:mit Root-Rechten arbeiten:] [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [freedesktop-software:systemd:systemd] {en} ist ein System- und Sitzungs-Manager (Init-System), der für die Verwaltung aller auf dem System laufenden Dienste über die gesamte Betriebszeit des Rechners, vom Startvorgang bis zum Herunterfahren, zuständig ist. Prozesse werden dabei immer (soweit möglich) parallel gestartet, um den Bootvorgang möglichst kurz zu halten. = Grundlagen = == Units == systemd holt alle seine Vorgaben und Einstellungen zur Verwaltung aus Dateien, in der Terminologie von systemd sind dies "Units". Dabei wird zwischen systemweit geltenden Units und solchen, die nur für den jeweiligen Benutzer-Bereich gelten User Units unterschieden. Es gibt diverse Arten von Units wie z.B. [:systemd/Service Units:Service Units] zum Starten von Diensten oder [:systemd/Timer Units:Timer Units] zum (wiederholten) Ausführen einer Aktion zu einem bestimmten Zeitpunkt. Eine Einführung sowie eine Übersicht über die verschiedenen Unit-Typen findet sich unter [:systemd/Units:] bzw. [:systemd/User Units:] für benutzerspezifische Units. = Verwaltung = == Kommandozeile == Das Werkzeug, um systemd auf der Kommandozeile bzw. in einem Terminal[3] zu verwalten, hört auf den Namen '''systemctl'''. Die meisten Befehle greifen tief ins System ein und benötigen daher Root-Rechte. Diese werden bei Bedarf durch [:PolicyKit:] abgefragt. Man kann sie aber auch implizit durch ein vorangestelltes [:sudo:] gewähren. systemctl ist im Detail im Artikel [:systemd/systemctl:systemctl] erläutert. = Protokolle = systemd schreibt Protokoll-Informationen in ein zentrales Journal. Dieses kann mit Hilfe von [:systemd/journalctl:journalctl] ausgelesen werden inkl. Such- und Filter-Möglichkeit. Die Unit, die sich für systemd um das Systemprotokoll ("logging") kümmert, ist im Artikel [:systemd/journald:journald] beschrieben. == systemd-inhibit == Mit Hilfe von [:systemd/systemd-inhibit:systemd-inhibit] kann verhindert werden, dass der Rechner heruntergefahren wird, in den Ruhezustand geht etc., wenn ein Prozess / Programm noch ausgeführt wird. == Umgebungsvariablen == Für Units können gezielt Umgebungsvariablen definiert werden bzw. systemd-weit verfügbare Umgebungsvariablen zugänglich gemacht werden. Weitere Informationen sind im Artikel [:systemd/Umgebungsvariable:] zu finden. == Grafische Werkzeuge == Im Paket '''systemd-ui''' (''universe'') ist das Programm '''systemadm''' enthalten, welches in einer grafischen Oberfläche die gestarteten systemd-Units auflistet. Über die Oberfläche ist aber kein Starten, Stoppen oder Modifizieren der Units möglich. Das Paket ist nur für Ubuntu 16.04 verfügbar. = Netzwerk = Mit [:systemd/networkd:systemd-networkd] besitzt systemd einen eigenen Netzwerkdaemon, welcher unter Ubuntu allerdings standardmäßig nicht aktiviert ist. Für die Namensauflösung wird seit [:17.04: Ubuntu 17.04] der Dienst [:systemd/systemd-resolved:systemd-resolved] verwendet. = Zeitsynchronisation = Mit [:systemd/timesyncd:timesyncd] besitzt systemd einen eigenen Dienst, der sich um die Synchronisation der Systemuhr mit Zeitservern aus dem Internet kümmert und als schlanke Alternative zu [:ntpd:] verwendet werden kann. = Analyse = systemd besitzt mehrere Hilfsprogramme zur Analyse des Systems. Zwei davon sind '''systemd-analyze''' und '''systemd-path''' == systemd-analyze == Mit Hilfe von systemd-analyze kann der Startvorgang des Systems analysiert werden, woraus dann ggf. Optimierungen abgeleitet werden können. So kann das Programm z.B. ausgeben, welche systemd Unit wie lange zum Starten gebraucht hat. Weitere Information sind im Artikel zu [:systemd/systemd-analyze:systemd-analyze] zu finden. == systemd-path == Mit Hilfe des Kommandozeilenbefehls[3] `systemd-path` lässt sich feststellen, welche Verzeichnisse für was genutzt werden. So wird z.B. der Pfad zu den Konfigurationsdateien, den Log-Dateien und den Dateien, die zur Laufzeit des Systems angelegt werden, angegeben. Weitere Informationen sind in der [http://www.freedesktop.org/software/systemd/man/systemd.path.html Dokumentation] {en} zu finden. = Konfiguration = Möchte man die Konfiguration bzw. bestimmte Konfigurationswerte ändern, so geschieht das in der Datei '''/etc/systemd/system.conf''', welche dafür mit einem Editor mit Root-Rechten zu bearbeiten ist. In der Datei sind alle Default-Konfigurationswerte von systemd hinterlegt, in Form von auskommentierten Einträgen. Zum Ändern eines Konfigurationspunkts ändert man einfach den entsprechenden Wert und entfernt das Kommentarzeichen, die Raute `#` am Anfang der Zeile. Nach einem Neustart des Rechner läuft systemd mit der geänderten Konfiguration. Eine vollständige Übersicht inklusive detaillierter Erklärung der Konfigurationspunkte ist in der [http://www.freedesktop.org/software/systemd/man/systemd-system.conf.html Dokumentation] {en} von systemd zu finden, alternative auch in der entsprechenden [:man:Manpage] namens `systemd-system.conf`. Des Weiteren kann systemd über eine Reihe von [:Bootoptionen:] des Kernels beeinflusst werden. So würde z.B. das Hinzufügen der Bootoption `systemd.log_level=debug` den Log-Level von systemd auf `debug` ändern. Eine vollständige Übersicht über alle Bootoptionen ist in der [https://www.freedesktop.org/software/systemd/man/systemd.html#Kernel%20Command%20Line Dokumentation] {en} von systemd zu finden. = Problembehebung = Probleme mit systemd und deren (mögliche) Lösung sind im Artikel [:systemd/Problembehebung:] aufgeführt. = Historisches - Ubuntu und Init-Dienste = Bei Ubuntu ist systemd der zweite Ansatz, das in die Jahre gekommene Init-System [:Archiv/SysVinit:SysVinit] abzulösen. Während Canonical bis einschließlich [:Trusty:Ubuntu 14.04] ausschließlich und exklusiv auf die Eigenentwicklung [:Archiv/Upstart:Upstart] setzte, löst systemd dieses seit [:Utopic:Ubuntu 14.10] nach und nach ab. Seit [:Vivid:Ubuntu 15.04] ist es bei Ubuntu und den offiziellen Derivaten der Standard-Init-Dienst. Allerdings wurden im Hintergrund viele Funktionen weiterhin an Upstart weitergereicht und auch [:Unity:] in der Version 7 benötigt noch Upstart. Ubuntu 16.04 ist die letzte LTS-Version, die noch Komponenten von Upstart verwendet. = Links = == intern == * [:Dienste:] - Wiki-Artikel zu Init-Systemen und dem Starten und Stoppen von Diensten * [https://wiki.ubuntuusers.de/wiki/tags/systemd Artikelliste] zu systemd hier im Wiki == extern == * [http://www.freedesktop.org/software/systemd/man/ Übersicht] {en} über alle Manpages zu systemd * [http://www.freedesktop.org/wiki/Software/systemd/ systemd Wiki] {en} - Dokumentation * [https://kofler.info/systemd-timer-als-cron-alternative/ Systemd-Timer als Cron-Alternative] {de} - weitere Anwendungsmöglichkeiten, Blogbeitrag 08/2015 * [https://wiki.archlinux.de/title/Systemd Systemd] {de} - Eintrag im Arch Linux Wiki zu systemd * [ubuntu:SystemdForUpstartUsers:Systemd for Upstart users] im englischsprachigen Ubuntu-Wiki * [http://www.markshuttleworth.com/archives/1316 Losing graciously] {en} - Kommentar des Ubuntu-Gründers Mark Shuttleworth zur Ablösung von Upstart, 02/2014 * [http://www.freedesktop.org/software/systemd/man/systemd.directives.html systemd Direktiven] {en} #tag: Übersicht, System, Init-System, Dienste, systemd, Upstart