Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 10964|Antwort: 8

[Linux] Linux systemd Service Manager ausführlich erklärt

[Link kopieren]
Veröffentlicht am 28.11.2021 10:02:32 | | | |
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:

Linux betrachtet die Logausgabe des Systemd-Dienstes
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Fügen Sie einen Linux-Knoten hinzu und registrieren Sie ihn als Service
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 installiert den Node-Exporter
https://www.itsvse.com/thread-9969-1-1.html

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.





Vorhergehend:Linux testet die LDAP-Konnektivität mit dem Befehl Curl
Nächster:vsftp Upload-Dateiberechtigungsproblem
 Vermieter| Veröffentlicht am 11.12.2021 17:35:26 |
[Einheit]Ein Block ist üblicherweise der erste Block einer Konfigurationsdatei, der die Metadaten einer Einheit und deren Beziehung zu anderen Einheiten definiert. 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]Es ist in der Regel der letzte Block der Konfigurationsdatei, der definiert, wie gebootet wird und ob der Motor 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
[Dienst]Blöcke werden verwendet, um Dienste zu konfigurieren, und nur Einheiten des Typs Service 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


 Vermieter| Veröffentlicht am 11.12.2021 17:37:33 |
Typ=Gabelung
SystemD geht davon aus, dass der Service erfolgreich startet, wenn der Serviceprozess geforkt wird und der übergeordnete Prozess endet. Bei normalen Dämonen kannst du, sofern du dir nicht sicher bist, dass diese Startmethode nicht zu deinen Bedürfnissen passt, mit diesem Typ beginnen. Bei diesem Starttyp sollte auch PIDFile= angegeben werden, damit systemd den Hauptprozess des Dienstes verfolgen kann

 Vermieter| Veröffentlicht am 15.12.2021 16:55:14 |
EnvironmentFile-Befehl

EnvironmentFile ähnelt der Environment-Direktive, liest jedoch Umgebungsvariablen aus einer Textdatei. Die Textdatei sollte Variablenzuweisungen enthalten, die durch Zeilenumbrüche getrennt sind

Beispiel

Du kannst diese Umgebungsdatei nehmen und ihre Variablen wie folgt verwenden:



 Vermieter| Veröffentlicht am 04.01.2022 15:56:55 |
 Vermieter| Veröffentlicht am 05.01.2022 09:48:21 |
Docker-Standard-Service-Dateipfad /usr/lib/systemd/system/docker.service

 Vermieter| Veröffentlicht am 23.01.2022 22:57:56 |
Alle Service-Status anzeigen



Abfrage ab, ob ein Dienst eingeschaltet ist, verwenden Sie NFS als Beispiel:

 Vermieter| Veröffentlicht am 25.02.2025 17:01:08 |
Massenstartdienste, die mit ABC beginnen

 Vermieter| Veröffentlicht am 11.04.2025 15:57:14 |
DefaultTimeoutStartSec= und DefaultTimeoutStopSec= standardmäßig 90 Sekunden im Systemmanager und 90 Sekunden im Benutzermanager.

Der Hyperlink-Login ist sichtbar.

Sehen Sie sich die Konfiguration des angegebenen Dienstes mit folgendem Befehl an:


Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com