Systemd ist ein init-System und System-Management-Daemon für [[Linux]]-[[betriebssystem|Betriebssysteme]]. Es wurde entwickelt, um die traditionellen Init-Systeme zu ersetzen und bietet zahlreiche Funktionen zur Systemverwaltung, Service-Management und Ressourcenkontrolle. Ursprünglich von Lennart Poettering und Kay Sievers ins Leben gerufen, hat systemd eine breite Akzeptanz in der Linux-Community gefunden und ist mittlerweile in vielen Distributionen als Standard-Init-System integriert. Systemd ist **modular aufgebaut**, wodurch es einfach erweiterbar ist. Neue Funktionen können durch Hinzufügen von Modulen implementiert werden, ohne das gesamte System zu beeinträchtigen. Systemd ermöglicht die **parallele Ausführung von Systemdiensten**, was zu schnelleren Bootzeiten führt. Dies wird durch die gleichzeitige Initialisierung von Diensten und Ressourcen erreicht. Dienste in systemd werden als "Units" bezeichnet. Diese können **nicht nur Systemdienste, sondern auch Sockets, Timer und mehr** umfassen. Die Konfiguration erfolgt durch spezielle Unit-Dateien, die in der Regel in den Verzeichnissen /etc/systemd/system/ oder /usr/lib/systemd/system/ zu finden sind. Systemd verfolgt **Abhängigkeiten zwischen Diensten** und startet sie in der richtigen Reihenfolge. Dies erleichtert die Verwaltung komplexer Systemkonfigurationen. Das Journal-Subsystem von systemd ist für die **Protokollierung von Systemereignissen** verantwortlich. Es bietet einen zentralisierten und strukturierten Ansatz für das Protokollieren von Informationen über Dienstausführungen, Fehler und Warnungen. Das Journal-Subsystem kann mithilfe des Befehls journalctl durchsucht werden. Dies ermöglicht eine detaillierte Analyse von Systemprotokollen. Systemd ermöglicht die **Kontrolle und Begrenzung von Ressourcen wie CPU, Speicher und Netzwerkbandbreite für Dienste**. Dies ist besonders wichtig für die Verbesserung der Systemstabilität und -leistung. Die Hauptbenutzerschnittstelle für systemd ist das systemctl-Befehlszeilenprogramm. Hier sind einige grundlegende Befehle: * systemctl start [unit]: Startet einen Dienst. * systemctl stop [unit]: Stoppt einen Dienst. * systemctl restart [unit]: Startet einen Dienst neu. * systemctl enable [unit]: Aktiviert einen Dienst, um beim Systemstart gestartet zu werden. * systemctl disable [unit]: Deaktiviert einen Dienst, um beim Systemstart nicht gestartet zu werden. Die **Konfiguration** von systemd-Diensten erfolgt durch spezielle Unit-Dateien, die in der Regel mit .service, .socket, .timer usw. enden. Diese Dateien enthalten Informationen über den Dienst und seine Abhängigkeiten. =====Links===== * [[https://www.youtube.com/watch?v=Kzpm-rGAXos|Systemd Deep-Dive]]