Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Wie verwalte ich Systemdienste mit Systemd unter Linux?
systemd ist das Init -System, das von den meisten modernen Linux -Verteilungen verwendet wird. Es verwaltet den Start-, Stopp- und Gesamtlebenszyklus von Systemdiensten. Im Gegensatz zu älteren Init -Systemen wie Sysvinit bietet Systemd einen anspruchsvolleren und robusteren Ansatz, in dem Funktionen wie Abhängigkeitsmanagement und Parallel -Service -Startup eingesetzt werden. Mit der Verwaltung von Diensten mit Systemd werden die Befehlszeilen-Tools, hauptsächlich systemCTL
, verwendet. Das Verständnis der Struktur von Systemd -Einheiten (Dateien, die Dienste, Ziele und andere Systemkomponenten beschreiben) ist für das effektive Management von entscheidender Bedeutung. Diese Einheiten befinden sich in der Regel in /etc/systemd/system/
und in anderen zugehörigen Verzeichnissen. Die Einheiten selbst sind normalerweise in einer einfachen Konfigurationssprache geschrieben, wodurch sie relativ leicht zu verstehen und zu ändern. Schließlich bietet Systemd einen robusten Protokollierungsmechanismus, wodurch die Fehlerbehebung viel einfacher ist als bei älteren Init -Systemen. Hier sind einige gängige Befehle für die Verwaltung von Diensten:
systemCTL start & lt; service_name & gt;
. Zum Beispiel zum Starten des SSH -Dienstes verwenden Sie systemCTL start ssh
. Dieser Befehl initiiert den Dienst, wenn er noch nicht ausgeführt wird. Dieser Befehl stoppt den angegebenen Dienst anmutig. Dieser Befehl stoppt und startet dann den Dienst. Nützlich für die Anwendung von Konfigurationsänderungen oder zur Wiederherstellung von kleineren Problemen. Dieser Befehl stellt sicher, dass der Dienst automatisch zur Startzeit beginnt. Systemd erstellt symbolische Links, um die Serviceinheit in die entsprechenden Runlevel -Verzeichnisse zu platzieren. Dieser Befehl beseitigt die symbolischen Links und verhindert, dass der Dienst automatisch mit dem Start startet. In diesem Befehl wird der aktuelle Status des Dienstes einschließlich seiner PID (Prozess -ID), des aktiven Zustands und aller aktuellen Protokolle angezeigt. Es enthält detaillierte Informationen zur Gesundheit des Dienstes. Dieser Befehl listet alle aktuell ausgeführten Dienste auf. Sie können -State = Running
zum Filtern nur zum Ausführen von Diensten hinzufügen. Wie bereits erwähnt, ist dieser Befehl von entscheidender Bedeutung. Es enthält Informationen über den Status des Dienstes, einschließlich Fehlermeldungen, falls dies während des Starts oder zur Laufzeit aufgetreten ist. Achten Sie genau auf den Status "fehlgeschlagen" oder "inaktiv (tot) und die nachfolgenden Fehlermeldungen. Sie können Protokolle basierend auf dem Dienstnamen, der Zeit und anderen Kriterien filtern. Zum Beispiel: journalctl -u & lt; service_name & gt;
: Zeigt Protokolle speziell für den angegebenen Service an. -xe : Zeigt die neuesten Fehlermeldungen für den Dienst an. -F : Folgt der Protokollausgabe in Echtzeit. Nützlich zur Beobachtung des Verhaltens des Dienstes während der Fehlerbehebung. Der SystemD -Service beinhaltet das Erstellen einer Einheitsdatei, in der der Dienst beschrieben wird. Diese Dateien haben normalerweise eine .service
Erweiterung. Hier ist ein grundlegendes Beispiel für eine Dienstdatei: <code class="ini"> [Einheit] Beschreibung = mein benutzerdefinierter Dienst nach = network.target [Service] type = Simple User = MyUser Group = MyGroup execstart =/path/to/my/my/script.sh restart = immer restartSec = 5 [installieren] WantbyBy = multi-user.target </code>
[Einheit]
Abschnitt: enthält Metadaten über den Dienst, einschließlich der Beschreibung und der Abhängigkeiten. Gruppe, um es auszuführen und Richtlinien neu zu starten. An: systemctl Daemon-Reload
systemctl aktivieren mycustomservice
systemCTL -Status MyCustomService
Denken Sie daran, Platzhalter wie /path/to/my/script.sh
, zu ersetzen, und und und und und und und und und myser und und my/code und und & code & code> und ; Das ordnungsgemäße Einstellen des Benutzer und der Gruppe ist für die Sicherheit unerlässlich. Der restart = immer
und restartSec = 5
Optionen stellen sicher, dass der Dienst automatisch neu gestartet wird, wenn er abfällt, und 5 Sekunden vor dem Versuch eines Neustarts. Testen Sie Ihren benutzerdefinierten Dienst immer gründlich, bevor Sie ihn in einer Produktionsumgebung bereitstellen.
Das obige ist der detaillierte Inhalt vonWie verwalte ich Systemdienste mit Systemd unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!