So aktivieren oder deaktivieren Sie Linux-Dienste mit den Befehlen chkconfig und systemctl

So aktivieren oder deaktivieren Sie Linux-Dienste mit den Befehlen chkconfig und systemctl

Dies ist ein wichtiges (und wunderbares) Thema für Linux-Administratoren, daher muss jeder wissen und üben, wie er sie effektiver nutzen kann.

Wenn Sie unter Linux ein Paket mit Diensten und Daemons installieren, werden standardmäßig die Initialisierungs- und Systemd-Skripte für diese Dienste hinzugefügt, sie sind zu diesem Zeitpunkt jedoch nicht aktiviert.

Wir müssen diese Dienste manuell ein- oder ausschalten. Es gibt drei bekannte Init-Systeme in Linux, die noch immer verwendet werden.

Was ist das Init-System?

Auf Linux/Unix-basierten Betriebssystemen ist init (kurz für Initialisierung) der erste Prozess, der während des Startvorgangs des Kernel-Bootsystems gestartet wird.

Die Prozess-ID (PID) von init ist 1 und es wird im Hintergrund ausgeführt, bis das System heruntergefahren wird.

init ermittelt zunächst anhand der Datei /etc/inittab die Ebene, auf der Linux ausgeführt wird, und startet dann basierend auf der Ausführungsebene alle anderen Prozesse und Anwendungen im Hintergrund.

Die BIOS-, MBR-, GRUB- und Kernelprogramme beginnen als Teil des Linux-Startvorgangs zu arbeiten, bevor init gestartet wird.

Die folgenden Runlevel sind in Linux verfügbar (es gibt sieben Runlevel von 0 bis 6):

0: Herunterfahren
1: Einzelbenutzermodus
2: Mehrbenutzermodus (ohne NFS)
3: Vollständiger Mehrbenutzermodus
4: System nicht im Einsatz
5: Grafischer Schnittstellenmodus
6: Neustart

Im Folgenden sind die drei am häufigsten verwendeten Init-Systeme in Linux-Systemen aufgeführt:

  • System V (Sys V)
  • Emporkömmling
  • systemd

Was ist System V (Sys V)?

System V (Sys V) ist das erste und traditionelle Init-System für Unix-ähnliche Systeme. init ist das erste Programm, das während des Startvorgangs des Kernel-Boot-Systems gestartet wird. Es ist der übergeordnete Prozess aller Programme.

Die meisten Linux-Distributionen verwendeten ursprünglich das traditionelle Init-System namens System V (Sys V). In den letzten Jahren wurden mehrere Init-Systeme veröffentlicht, um Designbeschränkungen in der Standarddistribution zu beheben, etwa launchd, Service Management Facility, systemd und Upstart.

Aber systemd wurde von mehreren großen Linux-Distributionen übernommen, um das traditionelle SysV-Init-System zu ersetzen.

Was ist Upstart?

Upstart ist ein ereignisbasierter Ersatz für den Daemon /sbin/init, der das Starten von Aufgaben und Diensten während des Systemstartvorgangs übernimmt, diese während des Systembetriebs überwacht und sie beim Herunterfahren des Systems herunterfährt.

Es wurde ursprünglich für Ubuntu entwickelt, kann aber auch problemlos in allen anderen Linux-Systemen eingesetzt werden, um das alte System-V zu ersetzen.

Upstart wurde in Ubuntu von 9.10 bis Ubuntu 14.10 und in RHEL 6-basierten Systemen verwendet und danach durch systemd ersetzt.

Was ist systemd?

systemd ist ein neues Init-System und Systemmanager, der in allen wichtigen Linux-Distributionen verwendet wird und das traditionelle SysV-Init-System ersetzt.

systemd ist mit SysV- und LSB-Init-Skripten kompatibel. Es ist ein direkter Ersatz für das SysV-Init-System. systemd ist das erste vom Kernel gestartete Programm und seine PID ist 1.

systemd ist der übergeordnete Prozess aller Programme und Fedora 15 ist die erste Distribution, die systemd anstelle von Upstart verwendet. systemctl wird für die Befehlszeile verwendet und ist das Haupttool zum Verwalten von systemd-Daemons/-Diensten, wie z. B.: (Starten, Neustarten, Herunterfahren, Aktivieren, Deaktivieren, Neuladen und Status)

systemd verwendet .service-Dateien anstelle von Bash-Skripten (die SysVinit verwendet). systemd fügt alle Daemons der Reihe nach zu den Kontrollgruppen hinzu. Sie können die Systemhierarchie anzeigen, indem Sie die Datei /cgroup/systemd durchsuchen.

Wie aktiviere oder deaktiviere ich Boot-Dienste mit dem Befehl chkconfig?

Das Dienstprogramm chkconfig ist ein Befehlszeilentool, mit dem Sie ausgewählte Dienste auf einem angegebenen Runlevel starten sowie alle verfügbaren Dienste und ihre aktuellen Einstellungen auflisten können.

Darüber hinaus können wir damit Dienste vom Start an aktivieren oder deaktivieren. Voraussetzung ist, dass Sie über Superadministratorrechte (root oder sudo) verfügen, um diesen Befehl auszuführen.

Alle Serviceskripte befinden sich in der Datei /etc/rd.d/init.d

So listen Sie alle Dienste in einem Runlevel auf

Die Option --list zeigt alle Dienste und ihren aktuellen Status an (Runlevel, auf denen der Dienst aktiviert oder deaktiviert ist):

# chkconfig --list
NetworkManager 0:aus 1:aus 2:an 3:an 4:an 5:an 6:aus
abrt-ccpp 0:aus 1:aus 2:aus 3:an 4:aus 5:an 6:aus
abrtd 0:aus 1:aus 2:aus 3:an 4:aus 5:an 6:aus
acpid 0:aus 1:aus 2:an 3:an 4:an 5:an 6:aus
atd 0:aus 1:aus 2:aus 3:an 4:an 5:an 6:aus
auditd 0:aus 1:aus 2:an 3:an 4:an 5:an 6:aus
.
.

So zeigen Sie den Status eines bestimmten Dienstes an

Wenn Sie den Status eines Dienstes in einer Runlevel-Ebene prüfen möchten, können Sie das folgende Format verwenden, um den erforderlichen Dienst abzugleichen.

Ich möchte beispielsweise den Status des auditd-Dienstes im Runlevel überprüfen

# chkconfig --list| grep auditd
auditd 0:aus 1:aus 2:an 3:an 4:an 5:an 6:aus

So aktivieren Sie einen Dienst in einem bestimmten Runlevel

Verwenden Sie den Parameter --level, um einen Dienst auf einer angegebenen Ausführungsebene zu aktivieren. Im Folgenden wird gezeigt, wie der httpd-Dienst auf den Ausführungsebenen 3 und 5 aktiviert wird.

# chkconfig --level 35 httpd ein

So deaktivieren Sie einen Dienst auf einem bestimmten Runlevel

Verwenden Sie auch den Parameter --level, um Dienste auf der angegebenen Ausführungsebene zu deaktivieren. Im Folgenden wird gezeigt, wie der httpd-Dienst auf Ausführungsebene 3 und Ausführungsebene 5 deaktiviert wird.

# chkconfig --level 35 httpd off

So fügen Sie der Startliste einen neuen Dienst hinzu

Mit dem Parameter -–add können wir der Startliste neue Dienste hinzufügen. Standardmäßig werden neu hinzugefügte Dienste automatisch in den Ausführungsebenen 2, 3, 4 und 5 gestartet.

# chkconfig --add nagios

So entfernen Sie einen Dienst aus der Startliste

Mit dem Parameter --del können Sie einen Dienst aus der Startliste löschen. Im Folgenden wird gezeigt, wie Sie einen Nagios-Dienst aus der Startliste löschen.

# chkconfig --del nagios

Wie verwende ich den Befehl systemctl, um den automatischen Startdienst zu aktivieren oder zu deaktivieren?

systemctl ist ein Befehlszeilentool zum Verwalten von systemd-Daemons/-Diensten, wie z. B. (Starten, Neustarten, Stoppen, Aktivieren, Deaktivieren, Neuladen und Status).

Die von allen Diensten erstellten Unit-Dateien befinden sich in /etc/systemd/system/.

So listen Sie alle Dienste auf

Verwenden Sie den folgenden Befehl, um alle Dienste (sowohl aktivierte als auch deaktivierte) aufzulisten.

# systemctl list-unit-files --type=service
UNIT-DATEISTATUS
arp-ethers.service deaktiviert
auditd.service aktiviert
[email protected] aktiviert
blk-availability.service deaktiviert
brandbot.service statisch
[email protected] statisch
chrony-wait.service deaktiviert
chronyd.service aktiviert
cloud-config.service aktiviert
cloud-final.service aktiviert
cloud-init-local.service aktiviert
cloud-init.service aktiviert
console-getty.service deaktiviert
console-shell.service deaktiviert
[email protected] statisch
cpupower.service deaktiviert
crond.service aktiviert
.
.
150 Unit-Dateien aufgelistet.

Verwenden Sie das folgende Format, um den aktuellen Status des Dienstes, den Sie anzeigen möchten, mithilfe eines regulären Ausdrucks abzugleichen. Im Folgenden wird der Befehl systemctl verwendet, um den Status des httpd-Dienstes anzuzeigen.

# systemctl list-unit-files --type=service | grep httpd
httpd.service deaktiviert

So aktivieren Sie den automatischen Start eines bestimmten Dienstes beim Booten

Verwenden Sie das folgende Format des Systemctl-Befehls, um einen bestimmten Dienst zu aktivieren. Durch Aktivieren des Dienstes wird ein symbolischer Link erstellt, wie unten gezeigt:

# systemctl aktiviere httpd
Symlink von /etc/systemd/system/multi-user.target.wants/httpd.service nach /usr/lib/systemd/system/httpd.service erstellt.

Führen Sie den folgenden Befehl aus, um zu bestätigen, dass der Dienst aktiviert ist.

# systemctl ist aktiviert httpd
ermöglicht

So deaktivieren Sie einen bestimmten Dienst

Wenn Sie den Dienst durch Ausführen des folgenden Befehls deaktivieren, wird der symbolische Link entfernt, der beim Aktivieren des Dienstes erstellt wurde.

# systemctl httpd deaktivieren
Symlink /etc/systemd/system/multi-user.target.wants/httpd.service entfernt.

Führen Sie den folgenden Befehl aus, um zu bestätigen, ob der Dienst deaktiviert ist.

# systemctl ist aktiviert httpd
deaktiviert

So zeigen Sie den aktuellen Runlevel des Systems an

Verwenden Sie den Befehl systemctl, um den aktuellen Runlevel Ihres Systems zu bestätigen. Der Befehl runlevel funktioniert unter systemd immer noch, allerdings ist runlevel ein historisches Konzept für systemd. Ich schlage daher vor, dass Sie für alles den Befehl systemctl verwenden.

Wir befinden uns derzeit im Runlevel 3, was dem unten gezeigten multi-user.target entspricht.

# systemctl list-units --type=target
EINHEIT LAST AKTIV SUB BESCHREIBUNG
basic.target geladen aktiv aktiv Basissystem
cloud-config.target geladen aktiv aktiv Cloud-config Verfügbarkeit
cryptsetup.target geladen aktiv aktiv Lokale verschlüsselte Volumes
getty.target geladen aktiv aktiv Anmeldeaufforderungen
local-fs-pre.target geladen aktiv aktiv Lokale Dateisysteme (Pre)
local-fs.target geladen aktiv aktiv Lokale Dateisysteme
multi-user.target geladen aktiv aktiv Mehrbenutzersystem
network-online.target geladen aktiv aktiv Netzwerk ist online
network-pre.target geladen aktives aktives Netzwerk (Pre)
network.target geladen aktiv aktiv Netzwerk
paths.target geladen aktive aktive Pfade
remote-fs.target geladen aktive aktive Remote-Dateisysteme
slices.target geladen aktive aktive Slices
sockets.target geladen aktive aktive Sockets
swap.target geladen aktiv aktiv Swap
sysinit.target geladen aktiv aktiv Systeminitialisierung
timers.target geladen aktiv aktive Timer

Zusammenfassen

Oben ist die Methode, die ich Ihnen vorgestellt habe, um Linux-Dienste mit den Befehlen chkconfig und systemctl zu aktivieren oder zu deaktivieren. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des chkconfig-Befehls unter Linux
  • Detaillierte Erläuterung der Verwendung des Linux-Befehls chkconfig
  • Verwendung des Linux-Befehls chkconfig

<<:  JS implementiert Anforderungsdispatcher

>>:  CentOS7 64-Bit-Installation MySQL Grafik-Tutorial

Artikel empfehlen

Keep-Alive-Multilevel-Routing-Cache-Problem in Vue

Inhaltsverzeichnis 1. Problembeschreibung 2. Ursa...

Tutorial zur Verwendung des iostat-Befehls unter Linux

Vorwort Es wird gesagt, dass sich die für Betrieb...

Zeichnen Sie ein iPhone basierend auf CSS3

Ergebnis:Implementierungscode html <div Klasse...

Spielen Sie mit der Connect-Funktion mit Timeout in Linux

Im vorherigen Artikel haben wir mit Timeouts unte...

Detaillierte Erklärung zur Installation der PHP-Curl-Erweiterung unter Linux

Dieser Artikel beschreibt, wie man die PHP-Curl-E...

43 Webdesign-Fehler, auf die Webdesigner achten sollten

Dies ist ein Artikel über die Benutzerfreundlichk...

Die Rolle und Öffnung des MySQL-Protokolls für langsame Abfragen

Vorwort Das MySQL Slow Query Log ist ein Protokol...

Verständnis von Haslaylout- und BFC-Parsing

1. haslayout und bfc sind IE-spezifische und Stand...

Detaillierte Erläuterung der Anwendungsszenarien von Filtern in Vue

filter werden im Allgemeinen verwendet, um bestim...

CSS3-Implementierungsbeispiel zum Drehen nur des Hintergrundbildes um 180 Grad

1. Mentale Reise Als ich kürzlich das Cockpit sch...

Detaillierte Schritte zur Verwendung von Redis in Docker

1. Einleitung Dieser Artikel zeigt Ihnen, wie Sie...

Über 40 schöne Beispiele für Webformular-Designs

Webformulare sind der primäre Kommunikationskanal...