Systemd bringt das Konzept der systemd-Einheiten in Linux. Für e.G., Serviceeinheit, Zieleinheit, Montageeinheit usw. sind Einheitentypen mit der Dateierweiterung als .Bedienung, .Ziel, .jeweils montieren. Die Konfigurationsdatei, die diese Einheiten repräsentiert, wird in den Verzeichnissen gespeichert: /usr/lib/systemd/system/, /run/systemd/system/, /etc/systemd/system/
Frühere Versionen von Red Hat Enterprise Linux (RHEL) verwendeten Init-Skripte. Diese Skripte wurden in BASH geschrieben und befanden sich im Verzeichnis „/etc/rc“.d/init.d/”. Dies sind Skripte, die verwendet werden, um die Dienste und Daemons zu steuern. Später in RHEL 7 wurden Service Units eingeführt, um die Init-Skripte zu ersetzen. Fedora, ein Upstream-Betriebssystem von Red Hat Enterprise Linux, verwendet seit der Fedora-Version 15 das systemd.
Serviceeinheiten haben .service-Dateierweiterungen und haben ähnliche Rollen wie Init-Skripte. „Systemd“ verwendet das Dienstprogramm „systemctl“, um Systemdienste zu verwalten. Es kann verwendet werden, um diese Dienste anzuzeigen, zu starten, zu stoppen, neu zu starten, zu aktivieren oder zu deaktivieren.
Vorteile von Systemd über Init-System
- Mit systemd können wir notwendige Dienste gegenüber weniger wichtigen Diensten priorisieren.
- Cgroups werden von systemd verwendet, um Prozesse zu verfolgen und die Ausführung zu steuern.Umgebung.
- Systemd unterstützt immer noch den alten Init-Prozess und hat mehr Kontrolle.
- Systemd ist in der Lage, mit dynamischen Änderungen der Systemkonfiguration umzugehen.
Was werden wir abdecken??
In diesem Leitfaden lernen wir die Verwaltung von Systemprozessen. Wir werden sehen, wie Sie Startdienste beim Booten aktivieren und deaktivieren und wie Sie Dienstvorgänge wie Starten, Stoppen, Neustarten usw. ausführen. Wir haben die folgenden Übungen auf Fedora 30-Workstations durchgeführt, die am besten auf andere Linux-Betriebssysteme anwendbar sind.
Startdienste beim Booten in Fedora Linux auflisten
Die alte SysV-Methode verwendet den Dienst und chkconfig Befehle zum Verwalten der Dienste. Diese Befehle werden jetzt durch die systemd-Befehle wie . ersetzt systemctl. Sehen wir uns einige der Operationen von „systemctl“ auf verschiedenen Diensten in Linux an.
1. Um alle auf Ihrem System ausgeführten Dienste mit ihrem Status (aktiviert oder deaktiviert) aufzulisten, verwenden Sie den folgenden Befehl:
$ sudo systemctl list-unit-files --type=service
Ein Dienst kann drei Zustände haben: 1) aktiviert 2) deaktiviert 3) statisch
Ein aktivierter Dienst hat einen Symlink in a .will Verzeichnis, während ein deaktivierter Dienst keins hat have. Ein statischer Dienst hat keinen Installationsabschnitt im entsprechenden Init-Skript. Es kann also nicht aktiviert oder deaktiviert werden.
Um weitere Details zu den Diensten zu erhalten, sollte der folgende Befehl verwendet werden.
$ sudo systemctl -at service
Zusammenfassung der obigen Spaltennamen:
UNIT - Systemd-Unit-Name (hier ein Dienstname).
LOAD - Geben Sie an, ob die systemd-Einheit richtig geladen wurde oder nicht.
AKTIV - Zustand des Gerätes (hier Service).
SUB - Ein Unterzustand einer Einheitenaktivierung.
BESCHREIBUNG - Eine kurze Info zum Gerät.
Wir können auch den folgenden Befehl verwenden:
$ sudo ls /lib/systemd/system/*.Bedienungoder
$ sudo /etc/systemd/system/*.Bedienung
Das „/etc/inittab“ wird jetzt ersetzt durch „/etc/systemd/system/“ in systemd. Dieses Verzeichnis enthält nun die Symlinks zu den Dateien im Verzeichnis „/usr/lib/systemd/system”. Die Init-Skripte werden im Verzeichnis „/usr/lib/systemd/system“ abgelegt. Ein Dienst muss zugeordnet werden „/etc/systemd/system/“ zum Starten beim Systemstart. Zu diesem Zweck wird der Befehl systemctl in Fedora und anderen aktuellen Linux-Systemen verwendet.
2. Sehen wir uns das folgende Beispiel für die Aktivierung des httpd-Dienstes an:
$ sudo systemctl aktivieren httpd.Bedienung
Außerdem können wir den folgenden Befehl verwenden, um alle aktivierten Dienste zu filtern:
$ sudo systemctl list-unit-files | grep aktiviert
oder verwenden Sie den Befehl:
$ sudo systemctl | grep läuft
3. Um alle aktiven (laufenden) Dienste aufzulisten, verwenden Sie den Befehl:
4. Um zu sehen, welche Dienste beim Systemstart automatisch gestartet werden, können wir auch den folgenden Befehl verwenden:
$ sudo systemctl list-unit-files --type=service --state=enabled --all
5. Ebenso können wir die deaktivierten Dienste beim Booten mit dem folgenden Befehl überprüfen:
$ sudo systemctl list-unit-files --type=service --state=disabled --all
6. Wir können auch sehen, wie viel Zeit jeder Dienst beim Start benötigt:
$ sudo systemd-analyze schuld
7. Um zu überprüfen, ob ein Dienst für den Autostart beim Booten aktiviert ist, verwenden Sie den Befehl:
$ sudo systemctl ist aktiviert xxxSetzen Sie den Namen des Dienstes anstelle von xxx. E.G., Im Fall des httpd-Dienstes lautet der Befehl:
$ sudo systemctl ist aktiviert httpd.Bedienungoder
$ sudo systemctl ist aktiviert httpd
8. Um den Status eines Dienstes zu überprüfen, verwenden Sie den Befehl:
$ sudo systemctl status xxx.BedienungUm beispielsweise den Status des sshd-Dienstes zu überprüfen:
$ sudo systemctl status sshd.Bedienung
9. Um zu überprüfen, ob ein Dienst ausgeführt wird oder nicht, führen Sie einfach den folgenden Befehl aus:
$ sudo systemctl ist aktiv xxx.BedienungUm beispielsweise den Telnet-Status zu überprüfen:
$ sudo systemctl ist aktiv telnet.Bedienung
10. Um einen toten oder inaktiven Dienst zu starten, verwenden Sie den Befehl:
$ sudo systemctl start xxx.BedienungUm beispielsweise einen sshd-Dienst zu starten:
$ sudo systemctl start sshd
11. So deaktivieren Sie einen Dienst beim Systemstart
Um beispielsweise den httpd-Dienst zu deaktivieren:
$ sudo systemctl deaktivieren httpd.Bedienungoder
$ sudo systemctl deaktivieren httpd
12. So starten Sie einen laufenden Dienst neu
$ sudo systemctl Neustart xxx.BedienungUm den sshd-Dienst neu zu starten, verwenden Sie den Befehl:
$ sudo systemctl Neustart sshdWenn der Dienst noch nicht läuft, wird er gestartet.
13. So laden Sie einen laufenden Dienst neu
$ sudo systemctl reload xxx.BedienungLaden Sie beispielsweise den httpd-Dienst neu mit:
$ sudo systemctl reload httpd.Bedienung
Dieser Befehl lädt die Konfiguration eines bestimmten Dienstes neu. Um die Unit-Konfigurationsdatei von systemd neu zu laden, benötigen wir den Befehl:
$ sudo systemctl daemon-reload14. So listen Sie alle Abhängigkeiten eines Dienstes auf:
$ sudo systemctl list-dependencies xxx.BedienungIm Fall des httpd-Dienstes lautet der Befehl:
$ sudo systemctl list-dependencies httpd.Bedienung
Fazit
In diesem Handbuch haben wir verschiedene Möglichkeiten zur Verwaltung von Diensten mit dem Dienstprogramm systemd gesehen, z. B. das Aktivieren von Diensten beim Booten, das Starten und Stoppen usw. Wenn Sie an den Dienstbefehl des alten Sysvinit gewöhnt waren, sollten Sie zu systemd wechseln, da es mehr Funktionen bietet und das Standard-Init-System in neueren Versionen von Fedora, RHEL und den meisten anderen großen Linux-Distributionen ist.