GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Systemctl-Befehle zum Verwalten des Systemd-Dienstes

Systemctl ist ein Dienstprogramm, das von systemd zum Verwalten von System- und Dienstmanagern verwendet wird. Viele moderne Linux-Distributionen wie Ubuntu, Debian, Fedora, Linux Mint, OpenSuSE, Redhat haben systemd als Standard-Init-System übernommen.

Mit systemctl können Sie den Dienst starten, stoppen, neu laden, neu starten, Units auflisten, den Dienststatus prüfen, den Dienst aktivieren/deaktivieren, Ziele (Runlevel) und die Energieverwaltung verwalten.

In diesem Tutorial zeige ich Ihnen, wie Sie systemctl-Befehle verwenden, um den systemd-Dienst unter Linux zu verwalten.

1. Systemctl Dienst starten/stoppen/neu starten/neu laden

Um einen Dienst unter Linux zu starten, führen Sie systemctl gefolgt von „start“ space service name.

aus

Beispiel:

systemctl start dnsmasq

Im Gegensatz zum Dienstbefehl gibt der Befehl systemctl start keine Ausgabe aus.

Um einen Dienst zu stoppen, verwenden Sie systemctl stop service-name. Zum Beispiel:

systemctl stop dnsmasq

Um einen Dienst neu zu starten, verwenden Sie systemctl restart service-name.

Beispiel:

systemctl restart dnsmasq

Um die Konfiguration des Dienstes (z. B. ssh) neu zu laden, ohne ihn neu zu starten, verwenden Sie systemctl reload service-name.

Zum Beispiel:

systemctl reload sshd

2. Systemctl prüft den Dienststatus

Um zu sehen, ob ein Dienst läuft oder nicht, können wir die systemctl-Statusprüfung verwenden.

systemctl status dnsmasq

3. Dienst beim Booten prüfen und aktivieren/deaktivieren

Um einen Dienst beim Booten zu aktivieren (dies entspricht 'chkconfig on' im sysvinit-System), verwenden Sie systemctl enable service-name.

Beispiel:

systemctl enable dnsmasq.service

Ebenso können die Dienste beim Booten deaktiviert werden, führen Sie Folgendes aus:

systemctl disable dnsmasq.service

Um zu überprüfen, ob ein Dienst beim Booten aktiviert ist oder nicht, führen Sie Folgendes aus:

systemctl is-enabled dnsmasq.service

4. Systemctl Listeneinheiten

Um alle laufenden Units aufzulisten, führen Sie den Befehl systemctl ohne Option aus. Die Option list-units tut dasselbe.

systemctl

oder

systemctl list-units

Die fehlerhaften Units können mit der Option --failed aufgelistet werden.

systemctl --failed

Um alle aktiven Dienste aufzulisten, führen Sie Folgendes aus:

systemctl list-units -t service

6. Systemctl-Befehle zum Neustarten/Herunterfahren

Wie Shutdown-Befehl, systemctl-Befehl, um das System herunterzufahren, neu zu starten oder in den Ruhezustand zu versetzen.

Der folgende Befehl fährt das System herunter, schaltet den Computer aus und sendet eine Benachrichtigung an alle angemeldeten Benutzer.

systemctl poweroff

Der folgende Befehl fährt das System herunter, schaltet die Maschine jedoch nicht aus. Dadurch wird eine Benachrichtigung an alle angemeldeten Benutzer gesendet.

systemctl halt

Schalten Sie das Gerät aus, aber es werden keine Benachrichtigungen an alle angemeldeten Benutzer gesendet.

systemctl --no-wall poweroff

Um Details zum Herunterfahren anzuzeigen, führen Sie den folgenden Befehl aus.

journalctl -u systemd-shutdownd

7. Systemclt zur Verwaltung von Remote-Systemen

In der Regel können alle oben genannten systemctl-Befehle verwendet werden, um einen Remote-Host mit dem systemctl-Befehl selbst zu verwalten. Dies verwendet ssh für die Kommunikation mit dem Remote-Host. Alles, was Sie tun müssen, ist, den Benutzer und den Host wie folgt zum systemctl-Befehl hinzuzufügen:

systemctl status sshd -H [email protected]

8. Ziele verwalten

Systemd hat ein Konzept von Zielen, die einen ähnlichen Zweck wie Runlevels im sysVinit-System haben.

Die Runlevel in sysVinit waren meistens numerisch (0,1,2,...). Hier sind die Runlevels in sysVinit mit ihren systemd-Gegenstücken:

0 runlevel0.target, poweroff.target
1, s, single runlevel1.target, rescue.target
2, 4 runlevel2.target, runlevel4.target, multi-user.target
3 runlevel3.target, multi-user.target
5 runlevel5.target, graphical.target
6 runlevel6.target, reboot.target
emergency emergency.target

Geben Sie Folgendes ein, um das aktuelle Ziel zu ändern:

systemctl isolate graphical.target

Wenn Sie sehen möchten, in welchem ​​Ziel Sie sich befinden, müssen Sie alle entsprechenden Einheiten auflisten.

systemctl list-units --type=target

Sie können "graphical.target" hier aufgelistet sehen. Deshalb haben wir unser Ziel geändert. Jetzt ändern wir den Runlevel wieder auf multi-user.target und analysieren dann diese Ausgabe:

systemctl isolate multi-user.target
systemctl list-units --type=target

Um das Standardziel aufzulisten, geben Sie Folgendes ein:

systemctl get-default

Das Standardziel kann mit dem Befehl set-default gesetzt werden, geben Sie ein:

systemctl set-default graphical.target

Andere nützliche systemd-Befehle

Systemd anmelden

Der Systemd hat ein eigenes Protokollierungssystem namens Journald. Er ersetzt den Syslog-Daemon von sysVinit.

journalctl

Führen Sie den Befehl „journalctl -b“ aus, um alle Bootmeldungen anzuzeigen.

journalctl -b

Der folgende Befehl folgt den Systemprotokollen in Echtzeit (ähnlich wie tail -f).

journalctl -f

Um Protokolle speziell für einen bestimmten Dienst oder eine ausführbare Datei zu überprüfen, verwenden Sie journalctl als:

journalctl /usr/sbin/dnsmasq

Startvorgangsdauer ermitteln

So finden Sie die Dauer des systemd-Startvorgangs mit dem folgenden Befehl:

systemd-analyze

Die systemd-analyze time zeigt auch die gleichen Informationen.

systemd-analyze time

Um eine Liste aller laufenden Units geordnet nach Initialisierungszeit auszudrucken, verwenden Sie systemd-analyze-Schuld.

systemd-analyze blame

Hostnamectl-Befehl

Um den Hostnamen anzuzeigen und zu ändern, verwenden Sie den Befehl hostnamectl.

hostnamectl

Schlussfolgerung

In diesem Tutorial haben wir systemctl-Befehle zum Verwalten des systemd-Dienstes in Linux-Distributionen gelernt. Ich hoffe, Sie hatten Spaß beim Lesen und hinterlassen Sie bitte Ihre Vorschläge im Kommentarbereich unten.

Lesen Sie auch:

  • Systemd-Boot-Prozess unter Linux genau betrachtet
  • Bunt! systemd vs sysVinit Linux-Cheatsheet

Linux
  1. Verwalten Sie mehrere Dienstinstanzen mit systemctl

  2. Verwalten Sie den Start mit systemd

  3. So verwalten Sie Systemd-Dienste mit Systemctl unter Linux

  4. Systemd-Befehlszeilenreferenz (Spickzettel)

  5. Wie stoppen Sie den systemd-Dienst

Parted-Befehle zum Verwalten der Festplattenpartition

Verwalten von cgroups mit systemd

Erste Schritte mit systemctl

Korrekte Verwendung von Ubuntu systemctl zur Steuerung von Systemd

CentOS / RHEL 7:Leitfaden für Anfänger zu systemd-Diensteinheiten

Wie kann ich einen systemd-Dienst so konfigurieren, dass er regelmäßig neu gestartet wird?