Verwalten des Systems mit systemd

Erläutert die Rolle von systemd in Oracle Linux und die Ausprägung des Systemstarts durch Konfiguration und Einheiten.

systemd ist der Systeminitialisierungs- und Servicemanager in Oracle Linux.

Der systemd-Daemon ist der erste Prozess, der nach dem Booten eines Systems gestartet wird. Er ist der letzte Prozess, der beim Herunterfahren des Systems ausgeführt wird. systemd steuert die letzten Phasen des Bootens und bereitet das System auf die Verwendung vor. Es beschleunigt auch das Booten, indem Services gleichzeitig geladen werden.

Tipp

Unter Systemd unter Oracle Linux verwenden finden Sie ein praktisches Tutorial und Videodemonstrationen zum Arbeiten mit systemd unter Oracle Linux.

Weitere Informationen zum Booten des Systems finden Sie unter Managing Kernels and System Boot on Oracle Linux.

systemd-Konfiguration

systemd liest seine Konfiguration in der Reihenfolge ihrer Priorität aus Dateien in den folgenden Verzeichnissen:

  • $HOME/.config/systemd/: Benutzerspezifische systemd-Konfigurationseinträge.

  • /etc/systemd/: Systemweite Anpassung der Systemkonfiguration.

  • /run/systemd/: Systemd-Laufzeitkonfiguration.

  • /usr/lib/systemd: Basissystemd-Konfiguration, die von Packages bereitgestellt wird.

Die Anpassung der Systemkonfiguration wird im Verzeichnis /etc/systemd gespeichert. Beispiel: Sie können die Datei /usr/lib/systemd/system.conf in die Datei /etc/systemd/system.conf kopieren und bearbeiten, um zu steuern, wie systemd die Systeminitialisierung verarbeitet.

Der systemd-Daemon startet Services während des Boot-Prozesses, indem er den symbolischen Link /etc/systemd/system/default.target liest.

Das folgende Beispiel zeigt den Wert von /etc/systemd/system/default.target auf einem System, das für das Booten in einen Mehrbenutzermodus ohne eine grafische Benutzeroberfläche, ein Ziel namens multi-user.target, konfiguriert ist:

sudo ls -l /etc/systemd/system/default.target
 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target 
Hinweis

Sie können einen Kernel-Bootparameter verwenden, um das Standardsystemziel außer Kraft zu setzen. Siehe Kernel-Boot-Parameter vor dem Booten ändern und Grubby zum Verwalten von Kernels verwenden.

systemd-Einheiten

Überblick über die wichtigsten systemd Unit-Typen, wie sie aufgelistet werden und wo ihre Konfigurationsdateien gespeichert sind.

systemd organisiert die verschiedenen Ressourcentypen, die es verwaltet, in Einheiten.

Die meisten Einheiten werden in Einheitenkonfigurationsdateien konfiguriert, mit denen Sie diese Einheiten entsprechend den Systemanforderungen konfigurieren können. Neben den Dateien können Sie auch systemd-Laufzeitbefehle verwenden, um die Einheiten zu konfigurieren.

Verwenden Sie den folgenden Befehl, um alle Typen von Einheiten anzuzeigen, die in systemd verfügbar sind:

sudo systemctl -t help
Available unit types:
service
mount
swap
socket
target
device
automount
timer
path
slice
scope

In der folgenden Liste werden einige Systemeinheiten beschrieben, die Sie mit systemd auf einem Oracle Linux-System verwalten können:

Services
Konfigurationsdateien der Serviceeinheit haben das Dateinamensformat service_name.service, z.B. sshd.service, crond.service und httpd.service.

Serviceeinheiten starten und steuern Daemons und die Prozesse, aus denen die Daemons bestehen.

Das folgende Beispiel zeigt, wie Sie die Serviceeinheit systemd für den Apache HTTP-Server httpd.service starten können:

sudo systemctl start httpd.service

Weitere Informationen finden Sie unter Service Management in Systemd.

Ziele
Konfigurationsdateien der Zieleinheit haben das Dateinamenformat target_name.target, z.B. graphical.target.

Ziele ähneln Runlevels. Ein System erreicht während des Boot-Vorgangs verschiedene Ziele, wenn Ressourcen konfiguriert werden. Beispiel: Ein System erreicht network-pre.target, bevor es das Ziel network-online.target erreicht.

Viele Zieleinheiten haben Abhängigkeiten. Beispiel: Die Aktivierung von graphical.target (für eine grafische Session) ist nicht erfolgreich, es sei denn, multi-user.target (für Mehrbenutzersysteme) ist ebenfalls aktiv.

Weitere Informationen finden Sie unter Systemd Targets.

Dateisystem-Mount Points
Konfigurationsdateien der Mounteinheit haben das Dateinamensformat mount_point_name.mount.
Mit Mounteinheiten können Sie Dateisysteme beim Booten einhängen. Beispiel: Sie können den folgenden Befehl ausführen, um das temporäre Dateisystem (tmpfs) beim Booten auf /tmp einzuhängen:
sudo systemctl enable tmp.mount
Geräte
Konfigurationsdateien für Geräteeinheiten haben das Dateinamensformat device_unit_name.device.

Geräteeinheiten werden nach den Pfaden /sys und /dev benannt, die sie steuern. Beispiel: Das Gerät /dev/sda5 wird in systemd als dev-sda5.device angegeben.

Mit Geräteeinheiten können Sie die gerätebasierte Aktivierung implementieren.

Sockets
Konfigurationsdateien der Socket-Einheit haben das Dateinamensformat socket_unit_name.socket.

Jede "*.socket"-Datei benötigt eine entsprechende "*.service"-Datei, um den Service so zu konfigurieren, dass er beim eingehenden Traffic auf dem Socket gestartet wird.

Mit Socket-Einheiten können Sie die Socket-basierte Aktivierung implementieren.

Timer

Die Konfigurationsdateien der Timer-Einheit haben das Dateinamensformat timer_unit_name.timer.

Jede "*.timer"-Datei benötigt eine entsprechende "*.service"-Datei, um den Service so zu konfigurieren, dass er bei einem konfigurierten Timerereignis gestartet wird. Ein Unit-Konfigurationseintrag kann verwendet werden, um einen Service anzugeben, der gegebenenfalls anders als die Timereinheit benannt ist.

Timereinheiten können steuern, wann Serviceeinheiten ausgeführt werden, und können als Alternative zur Verwendung des Cron-Daemons dienen. Timereinheiten können für Kalenderzeitereignisse, monotone Zeitereignisse konfiguriert und asynchron ausgeführt werden.

Weitere Informationen finden Sie unter Mit Timern in Systemd arbeiten.

Die Pfade zu den Konfigurationsdateien der systemd-Einheit variieren je nach Zweck und ob systemd im Modus "Benutzer" oder "System" ausgeführt wird.

Beispiel: Die Konfiguration für Einheiten, die aus Packages installiert werden, ist in /usr/lib/systemd/system oder /usr/local/lib/systemd/system verfügbar, während eine Benutzermoduskonfigurationseinheit wahrscheinlich in $HOME/.config/systemd/user gespeichert wird. Weitere Informationen finden Sie im Handbuch systemd.unit(5).