Systemdienste spielen eine entscheidende Rolle für das Funktionieren eines Linux-Systems und erledigen verschiedene Aufgaben und Prozesse im Hintergrund.systemctl>ist ein leistungsstarkes Befehlszeilentool, mit dem Benutzer diese Dienste effektiv verwalten können. In diesem Artikel werden wir die Grundlagen der Verwendung untersuchensystemctl>zum Starten, Stoppen, Neustarten, Aktivieren, Deaktivieren und Anzeigen des Status von Diensten in einer Linux-Umgebung.
Was ist systemctl?
Bevor Sie sich mit dem Servicemanagement befassen, ist es wichtig, die Grundlagen zu verstehensystemctl>. Mit diesem Befehl wird der System- und Servicemanager systemd gesteuert, der eine zentrale Komponente moderner Linux-Distributionen darstellt.
systemctl [command] [unit]>
Hier,
-
command>: Auszuführende Aktion (z. B. Starten, Stoppen, Neustart, Aktivieren, Deaktivieren). -
unit>: Der Dienst oder die Einheit, die betroffen sein soll.
Systemctl ist ein Controller bzw Dienstprogramm von Systemd (ein Init-System mit einer Reihe von Programmen, die im Hintergrund ausgeführt werden), mit Hilfsfunktionen zur Verwaltung von Diensten. Diese Befehle werden im Root-Modus ausgeführt, wenn Sie das System nicht rooten, und fordern das Root-Passwort an.
Was ist eine Dienstleistung?
Ein Dienst im Computerbereich ist ein Hintergrundprozess, der bestimmte Aufgaben und Funktionen ohne Benutzereingriff ausführt. Dienste starten häufig automatisch beim Systemstart und werden kontinuierlich ausgeführt, um Funktionen wie Webserver, Dateifreigabe oder Systemüberwachung bereitzustellen. Sie werden vom Betriebssystem verwaltet und können bei Bedarf gestartet, gestoppt oder neu gestartet werden. Services tragen dazu bei, sicherzustellen, dass wichtige Vorgänge durchgängig verfügbar sind. Beispiele hierfür sind Webserver wie Apache, Datenbankserver wie MySQL, Und Systemprotokollierungsdienste.
Was ist ein Dämon?
Ein Daemon ist ein Hintergrundprozess, der kontinuierlich auf einem Linux- oder Unix-System läuft. Es führt Aufgaben ohne direkte Benutzerinteraktion aus und startet häufig automatisch beim Booten. Gängige Beispiele sind Webserver, Datenbankserver und Systemüberwachungstools. Dämonen haben normalerweise Namen, die mit d enden, zhttpd>odersshd>. Sie helfen dabei, Systemfunktionen und -dienste effizient zu verwalten.
Was ist das Init-System?
Das Init-System ist der erste Prozess, der beim Hochfahren eines Linux-Systems ausgeführt wird und für die Initialisierung des Systems verantwortlich ist. Es verwaltet Systemdienste und -prozesse und kümmert sich um deren Start, Stopp und Neustart. Zu den gängigen Init-Systemen gehören SysVinit, Upstart und systemd. Das Init-System stellt sicher, dass alle erforderlichen Dienste ordnungsgemäß ausgeführt werden, und verwaltet die Abhängigkeiten zwischen ihnen. Es läuft weiterhin im Hintergrund, um Systemprozesse während des gesamten Systembetriebs zu überwachen und zu verwalten.
Einheiten im Systemd
In systemd sind Einheiten die grundlegenden Objekte, die systemd verwaltet und steuert. Sie repräsentieren Systemressourcen wie Dienste, Timer, Geräte und Bereitstellungspunkte. Jede Einheit wird durch eine Konfigurationsdatei mit einem bestimmten Suffix definiert, z.service>für Dienstleistungen bzw.timer>für Timer. Einheiten können mit systemctl-Befehlen gestartet, gestoppt, aktiviert oder deaktiviert werden. Sie sind wichtig für die Definition, wie das System verschiedene Prozesse und Ressourcen startet und verwaltet.
.service-Einheiten in systemd
Systemd.service>Einheiten sind Konfigurationsdateien, die zur Verwaltung von Diensten auf Linux-Systemen verwendet werden. Sie legen fest, wie und wann Dienste gestartet, gestoppt und neu gestartet werden sollen. Jede.service>Die Datei enthält Details wie den Namen des Dienstes, eine Beschreibung und den auszuführenden Befehl. Diese Dateien befinden sich normalerweise in/etc/systemd/system>oder/lib/systemd/system>. Ihre Verwaltung umfasst Befehle wiesystemctl start>,systemctl stop>, Undsystemctl enable>.
Wie finde ich alle systemd-Einheiten im System?
Um verfügbare Systemeinheiten aufzulisten oder alle Dienste unter Linux aufzulisten, verwenden wir den folgenden Befehl:
systemctl list-unit-files --type service -all>
So starten Sie einen Systemdienst unter Linux
Syntax:
VLC-Videos von YouTube herunterladen
sudo systemctl start service.service>
Der Befehl start dient zum Starten (Aktivieren) einer oder mehrerer auf der Befehlszeile angegebener Einheiten.
Beispiel:
sudo systemctl start mariadb>

Befehl Start
So stoppen Sie einen Systemdienst unter Linux
Syntax:
sudo systemctl stop service.service>
Der Befehl stop dient zum Stoppen des Dienstes oder (Deaktivieren) einer oder mehrerer auf der Befehlszeile angegebener Einheiten.
Beispiel:
sudo systemctl stop mariadb>

Befehlsstopp und Status
So zeigen Sie den Status eines Systemdienstes unter Linux an
Syntax:
sudo systemctl status service.service>
Der Befehl Status dient zur Überprüfung des Status des Dienstes. Zeigt kurze Laufzeitstatusinformationen zu einer oder mehreren Einheiten an, gefolgt von den neuesten Protokolldaten aus dem Journal. Wenn keine Einheiten angegeben sind, wird der Systemstatus angezeigt.
Beispiel:
sudo systemctl status mariadb>

Befehlsstatus
So starten Sie einen Systemdienst unter Linux neu
Syntax:
Wenn sonst, wenn Java
sudo systemctl restart service.service>
Der Befehl restart dient dazu, den in Ausführung befindlichen Dienst neu zu starten. Stoppen und starten Sie eine oder mehrere in der Befehlszeile angegebene Einheiten. Wenn die Einheiten noch nicht laufen, werden sie gestartet.
Beispiel:
sudo systemctl restart mariadb>

Befehl Neustart
So aktivieren Sie einen Systemdienst unter Linux
Syntax:
sudo systemctl enable name_service.service>
Der Enable-Befehl dient zur Ausführung des Dienstes, da die Initialisierung aus einer oder mehreren Units oder Unit-Instanzen besteht. Dadurch wird eine Reihe von erstellt Symlinks , wie in den Abschnitten [Install] der angegebenen Unit-Dateien codiert. Die Systemmanagerkonfiguration wird neu geladen (ähnlich dem Daemon-Reload), um sicherzustellen, dass die Änderungen sofort berücksichtigt werden.
Beispiel
sudo systemctl enable mariadb>

Befehl aktivieren

Befehlsstatus
So deaktivieren Sie einen Systemdienst unter Linux
Syntax:
sudo systemctl disable name_service.service>
Der Disable-Befehl dient zum Entzug des Dienstes seit der Initialisierung einer oder mehrerer Einheiten. Dadurch werden alle Symlinks zu den Unit-Dateien, die die angegebenen Units unterstützen, aus dem Unit-Konfigurationsverzeichnis entfernt und somit alle durch die Aktivierung oder Verknüpfung vorgenommenen Änderungen rückgängig gemacht.
Beispiel:
sudo systemctl disable mariadb>

Befehl Deaktivieren

Befehlsstatus
Fahren Sie das System mit systemctl herunter oder starten Sie es neu
Starten Sie das System neu: Es belehrtsystemd>um das gesamte System neu zu starten. Alle Dienste werden gestoppt und das System durchläuft vor dem Neustart einen vollständigen Shutdown-Prozess.
sudo systemctl reboot>
Fahren Sie das System herunter: Es weist systemd an, die Maschine auszuschalten. Alle Dienste und Prozesse werden gestoppt und das System wird sicher heruntergefahren.
sudo systemctl shutdown>
Journalctl
journalctl>ist ein Befehl, der in Linux-Systemen verwendet wird um Protokolle aus dem abzufragen und anzuzeigensystemd>Journal, ein Systemdienst, der Protokollierungsdaten sammelt und speichert. Hier finden Sie eine einfache Anleitung zur Verwendungjournalctl>:
journalctl -n 10>wird verwendet, um die letzten 10 Einträge (Zeilen) aus dem Systemd-Journal anzuzeigen. Hier ist eine Aufschlüsselung der Funktionsweise jedes Teils des Befehls:
Java nicht
-
journalctl>: Ruft die aufjournalctl>Befehl, der zum Abfragen und Anzeigen von Protokollen aus dem systemd-Journal verwendet wird. -
-n 10>: Gibt die Anzahl der anzuzeigenden Zeilen an. In diesem Fall,-n 10>befiehltjournalctl>um die letzten 10 Einträge aus dem Journal anzuzeigen.
journalctl -n 10>
Die Sicherung eines Dienstes mithilfe von systemd ist eine wesentliche Vorgehensweise, um Ihr System vor potenziellen Schwachstellen und unbefugtem Zugriff zu schützen. Hier ist eine vereinfachte Anleitung, wie Sie dies erreichen:
1. Service-Unit-Dateien verstehen
- Dienst-Konfiguration : Jeder Dienst in systemd wird von einer Unit-Datei verwaltet, die sich normalerweise in befindet
/etc/systemd/system/>. Diese Dateien definieren, wie der Dienst funktioniert, einschließlich seines Startverhaltens, seiner Ressourcenbeschränkungen und Sicherheitseinstellungen.
2. Beschränken Sie die Dienstberechtigungen
- Benutzer- und Gruppenberechtigungen : Geben Sie den Benutzer und die Gruppe an, unter denen der Dienst ausgeführt wird. Vermeiden Sie nach Möglichkeit die Verwendung des Root-Benutzers, um die Auswirkungen von Sicherheitsverletzungen zu minimieren.
3. Nutzen Sie die Sicherheitsfunktionen von systemd
- PrivateTmp : Privat aktivieren
/tmp>Und/var/tmp>Verzeichnisse für den Dienst, um Informationslecks zwischen verschiedenen Diensten zu verhindern. - ProtectSystem und ProtectHome : Legen Sie diese Optionen fest, um den Zugriff auf Systemverzeichnisse bzw. Benutzer-Home-Verzeichnisse einzuschränken und so die Systemsicherheit zu erhöhen.
- ReadOnlyPaths und ReadWritePaths : Geben Sie an, aus welchen Verzeichnissen der Dienst lesen oder in sie schreiben kann. Durch die Einschränkung des Schreibzugriffs können unbeabsichtigte Änderungen an kritischen Dateien verhindert werden.
4. Begrenzen Sie die Ressourcennutzung
- Begrenzen Sie CPU und Speicher : Verwenden
CPUQuota>UndMemoryLimit>Optionen zur Einschränkung der CPU- und Speichernutzung des Dienstes, um Angriffe durch Ressourcenerschöpfung zu verhindern.
5. Aktivieren Sie Netzwerkkontrollen
- Beschränken Sie den Netzwerkzugriff : Nutzen
RestrictAddressFamilies>,IPAddressAllow>, UndIPAddressDeny>Optionen zur Kontrolle des Netzwerkzugriffs für den Dienst, wodurch dessen Gefährdung durch potenzielle Bedrohungen begrenzt wird.
6. Legen Sie Dateisystemberechtigungen fest
- Dateisystemberechtigungen : Stellen Sie sicher, dass die Dateien und Verzeichnisse des Dienstes über die entsprechenden Berechtigungen verfügen (
chmod>) und Eigentum (chown>), um unbefugten Zugriff zu verhindern.
7. Regelmäßig aktualisieren und überwachen
- Halten Sie das System auf dem neuesten Stand : Aktualisieren Sie Ihre System- und Servicesoftware regelmäßig, um Sicherheitslücken zu beheben und sicherzustellen, dass Ihre Sicherheitsmaßnahmen wirksam bleiben.
- Protokolle überwachen : Systemd-Journalprotokolle überwachen (
journalctl>) auf verdächtige Aktivitäten oder sicherheitsrelevante Ereignisse aufmerksam zu machen und gegebenenfalls entsprechende Maßnahmen zu ergreifen.
Abschluss
Wir haben systemctl besprochen, ein wichtiges Befehlszeilentool für die Verwaltung von Systemdiensten unter Linux, das eine entscheidende Rolle bei Aufgaben wie dem Starten, Stoppen, Neustarten, Aktivieren und Deaktivieren von Diensten spielt. Dieser Artikel enthielt eine umfassende Anleitung zu systemctl und behandelte dessen Syntax und Tastaturbefehle. Von der Auflistung verfügbarer Systemd-Einheiten bis hin zum Aktivieren oder Deaktivieren des automatischen Starts trägt jeder Befehl zu einer effektiven Dienstverwaltung bei. Der Artikel ging auch auf häufig gestellte Fragen ein und bot praktische Lösungen für Aufgaben wie das Überprüfen des Dienststatus, das Starten, Stoppen und Neustarten von Diensten sowie das Aktivieren oder Deaktivieren des automatischen Starts. Insgesamt ist das Verständnis und die Beherrschung der systemctl-Befehle von entscheidender Bedeutung für Linux-Administratoren um die Stabilität und optimale Leistung ihrer Systeme sicherzustellen.
Systemctl – FAQs
Was ist ein Linux-Dienst?
Ein Linux-Dienst ist ein Hintergrundprozess oder eine Anwendung, die unabhängig von der Benutzerinteraktion ausgeführt wird und bestimmte Funktionen bereitstellt oder Systemaufgaben ausführt. Es wird vom Init-System verwaltet, normalerweise systemd, und kann mit Befehlen wie gestartet, gestoppt und verwaltet werden
systemctl>.
Was ist der Unterschied zwischen Systemctl und Service?
systemctl>ist ein Befehlszeilentool zur Verwaltung von Systemd-Dienstenservice>ist ein symbolischer Link zusystemctl>auf vielen Systemen und sorgt für Kompatibilität mit älteren Init-Skripten.
Wie überprüfe ich den Dienststatus unter Linux?
Verwenden Sie `
systemctl status `>um zu sehen, ob der Dienst ausgeführt wird, aktiv (kürzlich gestoppt) oder inaktiv (nie gestartet) ist. Dadurch werden wichtige Informationen wie Speichernutzung und aktive Verbindungen angezeigt.
Wie starte, stoppe und starte ich einen Dienst neu?
Zum Starten , verwenden :
sudo systemctl start>Zum Anhalten , verwenden :
sudo systemctl stop>Neustarten , verwenden :
sudo systemctl restart>Notiz : Denken Sie daran, es auszutauschen
>mit dem tatsächlichen Dienstnamen.
Wie lasse ich einen Dienst beim Booten automatisch starten?
Verwenden
sudo `>systemctl enable `>um den Dienst so einzustellen, dass er beim Systemstart automatisch gestartet wird.Um den automatischen Start zu deaktivieren, verwenden Sie „
sudo systemctl disable `>.