systemd ist ein Satz grundlegender Bausteine für Linux-Systeme. Es stellt ein System und einen Servicemanager bereit, der den Rest des Systems als PID 1 ausführt und startet.
systemd bietet aggressive Parallelisierungsmöglichkeiten, nutzt Sockets und D-Bus-Aktivierung zum Starten von Diensten, ermöglicht den Bedarfsstart von Daemonen, verwendet Linux-Kontrollgruppen zur Prozessverfolgung, verwaltet Mounts und automatische Mount-Punkte und implementiert gut gestaltete, transaktionsabhängige Servicekontrolllogik. systemd unterstützt SysV- und LSB-Init-Skripte und kann sysvinit ersetzen.
Weitere Abschnitte umfassen Log-Daemons, Dienstprogramme zur Steuerung grundlegender Systemkonfigurationen wie Hostnamen, Daten, Orte, Pflege einer Liste eingeloggter Benutzer und Betrieb von Containern und virtuellen Maschinen, Systemkonten, Laufzeitverzeichnisse und Einstellungen sowie Verwaltung von Daemon-Konfigurationen für einfache Netzwerke, Netzwerkzeit-Synchronisation, Weiterleitung und Namensauflösung.
Die systemd-Konfigurationsdatei befindet sich in den folgenden drei Ordnern:
/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。
/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。
/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。 Rezension:
Einheitsprofil
Eine Einheitendatei in systemd ist eine Datei, die Informationen über die verschiedenen Einheiten kodiert, die systemd verwalten kann, einschließlich Dienste, Sockets, Geräte und so weiter. Dieser Leitfaden konzentriert sich auf Dienste, wobei die Einheitsdatei, mit der wir arbeiten, die .service-Datei ist. Die varnish.service-Gerätekonfigurationsdatei enthält Informationen darüber, wie systemd den Varnish-Daemon ausführen, überwachen und verwalten sollte.
Der [Unit]-Block ist üblicherweise der erste Block der Konfigurationsdatei und wird verwendet, um die Metadaten der Unit und deren Bezug zu anderen Units zu definieren. Seine Hauptfelder sind wie folgt.
- Beschreibung: Eine kurze Beschreibung
- Dokumentation: Die Adresse des Dokuments
- Benötigt: Andere Einheiten, von denen die aktuelle Einheit abhängig ist, und wenn sie nicht laufen, startet die aktuelle Einheit nicht mehr
- Wünsche: Andere Einheiten, die mit der aktuellen Einheit zusammenarbeiten, wenn sie nicht laufen, startet die aktuelle Einheit nicht mehr
- BindsTo: Ähnlich wie Vereisen spezifiziert es eine Einheit, die dazu führt, dass die aktuelle Einheit aufhört zu laufen, wenn sie ausgeht
- Vorher: Wenn die in diesem Feld angegebene Einheit ebenfalls gestartet werden soll, muss sie nach der aktuellen Einheit gestartet werden
- Danach: Wenn die in diesem Feld angegebene Einheit ebenfalls gestartet werden soll, muss sie vor der aktuellen Einheit gestartet werden
- Konflikte: Die hier angegebene Einheit kann nicht gleichzeitig mit der aktuellen Einheit laufen
- Zustand... : Die Bedingungen, die erfüllt sein müssen, damit die aktuelle Einheit läuft, andernfalls läuft sie nicht
- Beteuern... : Die Bedingungen, die erfüllt sein müssen, damit die aktuelle Einheit läuft, andernfalls wird der Startfehler gemeldet
[Installieren] ist normalerweise der letzte Block der Konfigurationsdatei, der definiert, wie gebootet und ob gestartet werden soll. Seine Hauptfelder sind wie folgt.
- WantedBy: Sein Wert ist ein oder mehrere Targets, und wenn die aktuelle Einheit aktiv ist (aktiviert), wird der Symlink in ein Unterverzeichnis unter dem /etc/systemd/system-Verzeichnis mit dem Suffix Target + .wants gelegt
- RequiredBy: Sein Wert ist ein oder mehrere Targets, und wenn die aktuelle Einheit aktiv ist, wird der Symlink in einem Unterverzeichnis unter dem /etc/systemd/system-Verzeichnis mit dem Suffix Target + .required platziert
- Alias: Das Alias, das die aktuelle Einheit zum Start verwenden kann
- Außerdem: Wenn die aktuelle Einheit aktiviert wird, werden gleichzeitig andere Einheiten aktiviert
Der [Service]-Block wird verwendet, um den Service zu konfigurieren, und nur Einheiten des Service-Typs besitzen diesen Block. Seine Hauptfelder sind wie folgt.
- Typ: Definiert das Verhalten des Prozesses beim Start. Sie hat folgende Werte.
- Type=simple: Der Standardwert, führe den von ExecStart angegebenen Befehl aus, um den Hauptprozess zu starten
- type=forking: Fork erstellt einen Kindprozess aus dem Elternprozess, der sofort nach der Erstellung verlässt
- Typ=Oneshot: Ein einmaliger Prozess, Systemd wartet darauf, dass der aktuelle Dienst abgeschlossen ist, bevor er weiterfährt
- Typ=dbus: Der aktuelle Betrieb wird über D-Bus gestartet
- type=benachrichtigen: Wenn der aktuelle Dienst gestartet wird, wird Systemd benachrichtigt und die Ausführung wird fortgesetzt
- type=idle: Der aktuelle Service wird nur ausgeführt, wenn andere Aufgaben ausgeführt werden
- ExecStart: Der Befehl, den aktuellen Service zu starten
- ExecStartPre: Der Befehl, der vor dem Start des aktuellen Dienstes ausgeführt wird
- ExecStartPost: Der Befehl, der nach dem Start des aktuellen Dienstes ausgeführt wird
- ExecReload: Der Befehl, der ausgeführt wird, wenn der aktuelle Dienst neu gestartet wird.
- ExecStop: Der Befehl, der ausgeführt wird, wenn der aktuelle Dienst gestoppt wird
- ExecStopPost: Stoppe den Befehl, der ausgeführt wird, wenn er ausgeführt wird
- RestartSec: Die Anzahl der Sekunden zwischen dem automatischen Service startet den aktuellen Service neu
- Neustart: Definiert die Umstände, unter denen Systemd den aktuellen Dienst automatisch neu startet, mit möglichen Werten wie immer, bei Erfolg, bei Fehlschlag, auf Abnormal, Ofbruch, auf Watchdog
- TimeoutSec: Definiert die Anzahl der Sekunden, die Systemd wartet, bevor der aktuelle Dienst gestoppt wird
- Environment: Spezifizieren Sie die Environment-Variable
Systemctl-Verwaltungstool
Das Programmmanagement in CentOS wird im Grunde vom Tool systemCTL durchgeführt.
Start-up-Service:
SystemCTL Start Name.Service
Einstellung des Dienstes:
systemctl stop name.service
Service neu starten:
systemctl restart name.service
Status ansehen:
systemctl statusname.service
Bedingter Neustart:
Wenn der Service zuvor gestartet wurde, wird er neu gestartet, und wenn der Service nicht gestartet wird, wird er nicht mehr betrieben
systemctl try-restart name.service
Neuladen oder Neustart:
Zuerst neu laden, und wenn das Nachladen nicht erfolgreich ist, neu starten
systemctl reload-or-restart name.service
Neuladen oder bedingter Neustart:
systemctl reload-or-try-restart name.service
Legt fest, ob der Dienst vom Benutzer eingestellt werden kann, um den Zustand zu starten
systemctl unmask name.service
systemctl mask name.service ist verboten
Sehen Sie sich den aktuellen Aktivierungsstatus des Dienstes an:
Der Status-Rückgabewert des Befehls "Dienst hat begonnen" ist 0. Der Statusrückgabewert des Befehls, der nicht gestartet wurde, ist nicht 0.
systemctl is-active name.service
Sehen Sie alle aktivierten Dienste:
-t Spezifiziert den Typ der angezeigten Einheit.
--alle zeigen eine detailliertere Informationsliste an.
-ein Äquivalent --alle
SystemCTL-Listeneinheiten
SystemCTL Listeneinheiten -T Dienst
SystemCTL Listen-Einheiten -t Service -a
Sehen Sie alle Dienste:
SystemCTL Listen-Einheiten -A
Alle Service-Status anzeigen:
systemctl list-unit-files
-a 、--all: Ansehen Sie den Status aller Dienste
-t 、--Typ: Spezifiziert den zu betrachtenden Einheitstyp
geladen: Die Konfigurationsdatei wurde geladen, in den Speicher geladen
aktiv(laufend): Durchläufe, die kontinuierlich ein- oder mehrmals verarbeitet werden
active(exited): Die einmalige Konfiguration wird erfolgreich abgeschlossen
aktiv(wartend): Laufen, warten auf ein Ereignis
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
Wird verwendet, um aufzulisten, auf welchen Betriebsebenen der Dienst aktiviert und deaktiviert ist
ls /etc/systemd/system/*.wants/sshd.service
SystemCTL List-Unit-Dateien --Typ Ziel --alle
Um den Service so einzustellen, dass er nicht startet:
SystemCTL Deaktivieren der Service-Namenseinheit
Überprüfe, ob der Dienst gestartet und gestartet ist:
systemctl is-enabled name.service aktiviert
Schauen Sie sich Serviceabhängigkeiten an:
systemctl list-dependencies name.service SystemCTL list-depebdencies
Schwerlastservice:
systemctl daemon-reload
Beenden Sie den Prozess:
SystemCTL Kill-Prozessname
Betriebsmittel:
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
|