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.
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
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.serviceundhttpd.service.Serviceeinheiten starten und steuern Daemons und die Prozesse, aus denen die Daemons bestehen.
Das folgende Beispiel zeigt, wie Sie die Serviceeinheit
systemdfür den Apache HTTP-Serverhttpd.servicestarten können:sudo systemctl start httpd.serviceWeitere 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 Zielnetwork-online.targeterreicht.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/tmpeinzuhä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
/sysund/devbenannt, die sie steuern. Beispiel: Das Gerät/dev/sda5wird in systemd alsdev-sda5.deviceangegeben.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.
Jede "*.timer.timer"-Datei benötigt eine entsprechende "*.service"-Datei, um den Service so zu konfigurieren, dass er bei einem konfigurierten Timerereignis gestartet wird. EinUnit-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).