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 Im Folgenden sind die drei am häufigsten verwendeten Init-Systeme in Linux-Systemen aufgeführt:
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):
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:
|
<<: JS implementiert Anforderungsdispatcher
>>: CentOS7 64-Bit-Installation MySQL Grafik-Tutorial
Inhaltsverzeichnis 1. Problembeschreibung 2. Ursa...
Vorwort Es wird gesagt, dass sich die für Betrieb...
Ergebnis:Implementierungscode html <div Klasse...
Im vorherigen Artikel haben wir mit Timeouts unte...
Dieser Artikel beschreibt, wie man die PHP-Curl-E...
Dies ist ein Artikel über die Benutzerfreundlichk...
yum schnelle MySQL-Installation Yum-Repository hi...
Vorwort Das MySQL Slow Query Log ist ein Protokol...
1. haslayout und bfc sind IE-spezifische und Stand...
filter werden im Allgemeinen verwendet, um bestim...
1. Mentale Reise Als ich kürzlich das Cockpit sch...
Finden Sie das Problem Ich bin vor kurzem bei der...
1. Einleitung Dieser Artikel zeigt Ihnen, wie Sie...
Problembeschreibung: Nach der Ausführung von dock...
Webformulare sind der primäre Kommunikationskanal...