"systemd, unser kleiner Zauberlehrling, der uns Sysadmins das Leben erleichtert. Er startet Dienste, behält Abhängigkeiten im Blick und löst Boot-Probleme schneller als du 'Kernel-Panic' sagen kannst. Doch wie geht das? Lass uns die Magie von systemd erkunden.
Als erstes müssen wir verstehen, was systemd eigentlich ist. Es ist ein System- und Service-Manager für Linux, der als Init-Prozess startet und dann den Rest des Systems hochfährt. Ziemlich nützlich, oder? Das macht er, indem er Units startet, die verschiedene Aspekte des Betriebssystems repräsentieren.
Units können viele Formen annehmen, aber die, die wir am häufigsten sehen, sind Services (.service), Mountpoints (.mount) und Targets (.target). Units haben eine Abhängigkeitsbeziehung zueinander und systemd kennt sie alle. Es weiß, welchen Service es vor einem anderen starten muss und wann es einen bestimmten Mountpoint einhängen kann.
Kommen wir zu den Services: Die .service-Units sind wohl die bekanntesten, sie repräsentieren Systemdienste. Mit systemd können wir diese Dienste ganz einfach starten, stoppen, neu starten und ihren Status abfragen. Dafür verwenden wir das 'systemctl'-Kommando. Ein einfaches 'systemctl start httpd.service' und unser Webserver ist in der Spur.
Doch systemd kann mehr als nur Dienste starten und stoppen. Es kann auch ihre Logs verwalten und sogar sicherstellen, dass sie nach einem Absturz automatisch neu gestartet werden. Mit 'systemctl enable httpd.service' wird der Dienst beim Booten automatisch gestartet.
Nun zu den Targets: Diese repräsentieren Zustände des Systems, ähnlich wie Runlevel unter SysV. Sie sind eine Sammlung von Units, die zusammen gestartet werden, um einen bestimmten Systemzustand zu erreichen. Ein Beispiel ist das 'multi-user.target', das ein System in einen Zustand versetzt, in dem mehrere Benutzer gleichzeitig arbeiten können.
Und wie hilft uns das alles bei Boot-Problemen? Nun, wenn das System beim Hochfahren hängen bleibt, können wir mit 'systemctl list-dependencies' das Problem eingrenzen. Dies zeigt uns eine Baumstruktur der Units und ihren Status, so dass wir sehen können, wo es hakt.
So, das war's für den Anfang. systemd ist ein mächtiges Werkzeug, das viel mehr kann, als wir hier besprochen haben. Aber keine Sorge, wir werden in zukünftigen Artikeln weiter in die Tiefe gehen. Bis dahin: Happy systemd-ing!"