RHCSA -Serie -Prozessmanagement im RHEL 7 -Boot, Herunterfahren und alles dazwischen - Teil 5
- 2120
- 156
- Tom Jakobs
Wir werden diesen Artikel mit einer insgesamt und kurzen Überarbeitung dessen beginnen, was seit dem Moment, in dem Sie die drücken Leistung Taste, um Ihre einzuschalten Rhel 7 Server, bis Sie mit dem Anmeldebildschirm in einer Befehlszeilenschnittstelle angezeigt werden.
Linux -Boot -ProzessBitte beachte, dass:
1. Die gleichen Grundprinzipien gelten möglicherweise auch mit geringfügigen Änderungen auch für andere Linux -Verteilungen, und
2. Die folgende Beschreibung soll keine erschöpfende Erklärung des Kofferraumprozesses darstellen, sondern nur der Grundlagen.
Linux -Boot -Prozess
1. Der POST (Self -bei -Selbstversuche) initialisiert und führt Hardwareprüfungen durch.
2. Wenn das POST Oberflächen, die Systemsteuerung wird an den Startader der ersten Stufe übergeben, der entweder auf dem Bootsektor eines der Festplatten (für ältere Systeme mit BIOS und MBR) oder einer dedizierten (U) EFI -Partition gespeichert ist.
3. Der Bootloader der ersten Stufe lädt dann den Startlader der zweiten Stufe, meistens normalerweise RODEN (Grand Unified Bootloader), was im Inneren wohnt /Stiefel, Dies lädt wiederum den Kernel und das anfängliche RAM-basierte Dateisystem (auch bekannt als bekannt als Initramfs, Dies enthält Programme und Binärdateien, die die erforderlichen Aktionen ausführen, um letztendlich das tatsächliche Root -Dateisystem zu montieren).
4. Wir haben einen Begrüßungsbildschirm, mit dem wir ein Betriebssystem und ein Kernel aus auswählen können:
Boot -Menübildschirm5. Der Kernel richtet die an das System angeschlossene Hardware ein und startet nach dem Montieren des Root -Dateisystems den Prozess mit PID 1, Was wiederum andere Prozesse initialisiert und uns eine Anmeldeaufforderung präsentiert.
Notiz: Wenn wir dies zu einem späteren Zeitpunkt wünschen, können wir die Besonderheiten dieses Prozesses anhand des Befehls dMesg untersuchen und seine Ausgabe mithilfe der Tools filtern, die wir in früheren Artikeln dieser Serie erläutert haben.
Login -Bildschirm und Prozess -PIDIm obigen Beispiel haben wir das bekannte verwendet PS -Befehl Eine Liste der aktuellen Prozesse anzuzeigen, deren übergeordnete Prozess (oder mit anderen Worten, der Prozess, der sie gestartet hat) ist systemd (Der System- und Service -Manager, auf den die meisten modernen Linux -Verteilungen gewechselt haben) während des Systems Startup:
# ps -o ppid, pid, uname, comm --ppid = 1
Denken Sie daran, dass die -Ö Flagge (kurz für -Format) ermöglicht es Ihnen, die Ausgabe von vorzustellen ps in einem angepassten Format an Ihre Anforderungen an die in der angegebenen Schlüsselwörter entspricht Standardformatspezifizierer Abschnitt in Mann ps.
Ein weiterer Fall, in dem Sie die Ausgabe von definieren möchten ps Anstatt mit der Standardeinstellung zu gehen, müssen Sie Prozesse finden, die eine signifikante CPU und / oder Speicherlast verursachen, und sie entsprechend sortieren:
# PS Aux--Sort =+PCPU # sortieren nach %cpu (aufsteigend) # ps aux--sort = -pcpu # sortieren Sie nach %cpu (absteigend) # PS Aux--Sort =+PMEM # sortieren Sie nach %mem (Ascending ) # PS Aux--Sort = -pmem # sortieren nach %mem (absteigend) # PS Aux--Sort =+PCPU, -pMem # Sortieren Sie die Sortierung nach %CPU (aufsteigend) und %mem (absteigend)PS -Befehlsausgabe anpassen
Eine Einführung in Systemd
Nur wenige Entscheidungen in der Linux -Welt haben mehr Kontroversen verursacht als die Annahme von systemd durch große Linux -Verteilungen. Der Befürworter von Systemd nennt sich die folgenden Fakten als Hauptvorteile:
Lesen Sie auch: Die Geschichte hinter 'init' und 'systemd'
1. Systemd ermöglicht es, mehr Verarbeitung parallel beim Systemstart durchzuführen (im Gegensatz zu älteren Sysvinit, Das ist immer langsamer, da es nacheinander verarbeitet, prüft, ob einer von einem anderen abhängt, und wartet dann darauf, dass Dämonen starten, damit mehr Dienste beginnen können) und
2. Es funktioniert als dynamisches Ressourcenmanagement in einem laufenden System. Daher werden die Dienste bei Bedarf gestartet (um den Konsum von Systemressourcen zu vermeiden, wenn sie nicht verwendet werden), anstatt ohne einen gültigen Grund während des Bootes gestartet zu werden.
3. Rückwärtskompatibilität mit Sysvinit Skripte.
Systemd wird von der gesteuert Systemctl Dienstprogramm. Wenn Sie von einem kommen Sysvinit Hintergrund, die Chancen stehen gut mit:
- Die Service Tool, mit dem - in diesen älteren Systemen - zur Verwaltung von Sysvinit -Skripten verwendet wurde, und
- Das ChkConfig -Dienstprogramm, das den Zweck der Aktualisierung und Abfragung von Runlevel -Informationen für Systemdienste diente.
- abschalten, Was Sie mehrmals verwendet haben müssen, um ein laufendes System neu zu starten oder zu stoppen.
Die folgende Tabelle zeigt die Ähnlichkeiten zwischen der Verwendung dieser Legacy -Tools und der Verwendung Systemctl:
Legacy Tool | Systemctl -Äquivalent | Beschreibung |
Servicename Start | SystemCTL -Startname | Name des Starts (wo der Name ein Dienst ist) |
Service -Name Stopp | Systemctl Stoppname | Stoppen Sie den Namen |
Service Name Condrestart | SystemCTL-Try-RESTART-Name | Starten Sie den Namen neu (wenn er bereits ausgeführt wird) |
Service -Name Neustart | SystemCTL Neustartname | Startet den Namen neu |
Service Name Reload | SystemCTL Reload Name | Laden Sie die Konfiguration für den Namen neu |
Dienstname Status | SystemCTL Status Name | Zeigt den aktuellen Status des Namens an |
Service -Status -All | Systemctl | Zeigt den Status aller aktuellen Dienste an |
chkconfig name on | SystemCTL Aktivieren Sie den Namen | Aktivieren Sie den Namen für das Start, wie in der Einheitsdatei angegeben (die Datei, auf die die Symlink -Punkte angegeben sind). Der Prozess der Aktivierung oder Deaktivierung eines Dienstes zum automatischen Start beim BOOT besteht darin, symbolische Links im Verzeichnis/etc/systemd/system hinzuzufügen oder zu entfernen. |
chkconfig name aus | SystemCTL Deaktivieren Sie den Namen | Deaktivieren Sie den Namen so, dass er im Start ausgeführt wird, wie in der Einheitsdatei angegeben (die Datei, auf die die Symlink -Punkte angegeben sind) |
chkconfig -list Name | SystemCTL IS-fähiger Name | Überprüfen Sie, ob der Name (ein bestimmter Dienst) derzeit aktiviert ist |
chkconfig -List | Systemctl -Typ = Service | Zeigt alle Dienste an und gibt an, ob sie aktiviert oder deaktiviert sind |
Herunterfahren -h jetzt | Systemctl Poweroff | Ausschalten der Maschine (Halt) |
Stilldown -r jetzt | Systemctl -Neustart | Starten Sie das System neu |
Systemd stellte auch die Konzepte von Einheiten (die entweder ein Dienst, ein Mountspunkt, ein Gerät oder ein Netzwerk -Socket sein können) und Ziele (so wie Systemd es gelingt, mehrere verwandte Prozesse gleichzeitig zu starten, und kann berücksichtigt werden. nicht gleich- das Äquivalent von Runlevels in Sysvinitbasiert Systeme.
Zusammenfassen
Andere Aufgaben im Zusammenhang mit dem Prozessmanagement umfassen, ohne darauf beschränkt zu sein, die Fähigkeit zu::
1. Priorität der Ausführung in Bezug auf die Verwendung von Systemressourcen anpassen, was einen Prozess betrifft:
Dies wird durch die erreicht Renice Dienstprogramm, das die Planungspriorität eines oder mehrerer laufender Prozesse verändert. In einfachen Worten ist die Planungspriorität eine Funktion, mit der der Kernel (in Versionen vorhanden ist => 2.6) Systemressourcen gemäß der zugewiesenen Ausführungspriorität zuzuordnen (auch bekannt als Feinheit in einem Bereich von -20 durch 19) eines bestimmten Prozesses.
Die grundlegende Syntax von Renice ist wie folgt:
# Renice [-n] Priorität [-gpu] Identifier
Im obigen generischen Befehl ist das erste Argument der zu verwendende Prioritätswert, während das andere Argument als Prozess interpretiert werden kann IDS (Dies ist die Standardeinstellung), Prozessgruppen -IDs, Benutzer -IDs oder Benutzernamen. Ein normaler Benutzer (außer Root) kann nur die Planungspriorität eines Prozesses ändern, den er oder sie besitzt, und nur die Schönheitsstufe erhöhen (was bedeutet, weniger Systemressourcen aufzunehmen).
Priorität der Zeitplanung2. Töten (oder unterbrechen Sie die normale Ausführung) eines Prozesses nach Bedarf:
Genauer gesagt das Töten eines ProzessSigterm = 15) oder sofort (Sigkill = 9) durch die Tötungs- oder Pkill -Befehle.
Der Unterschied zwischen diesen beiden Tools besteht darin, dass ersterer verwendet wird, um einen bestimmten Prozess oder eine Prozessgruppe insgesamt zu beenden, während der letztere Ihnen ermöglicht.
Zusätzlich, Pkill Kommt mit PGREP, Dies zeigt Ihnen die PIDs, die betroffen sein werden, sollte Pkill verwendet werden. Zum Beispiel vor dem Laufen:
# PKILL -U GACANEPA
Es kann nützlich sein, auf einen Blick zu sehen, der die sind Pids gehört Gacanepa:
# pGrep -l -u GacanepaFinden Sie Pids des Benutzers
Standardmäßig beide töten Und Pkill Sende das Sigterm Signal auf den Prozess. Wie wir oben erwähnt haben, kann dieses Signal ignoriert werden (während der Prozess seine Ausführung abschließt oder für immer für immer). Wenn Sie also ernsthaft einen Laufprozess mit gültigem Grund stoppen müssen, müssen Sie die angeben Sigkill Signal in der Befehlszeile:
# Kill -9 -Identifier # Töten Sie einen Prozess oder eine Prozessgruppe # Kill -S -Signalidentifikator # IDEM # PKILL -S -Signalidentifikator # Töten Sie einen Prozess mit Namen oder anderen Attributen
Abschluss
In diesem Artikel haben wir die Grundlagen der erläutert Boot -Prozess in einem Rhel 7 System und analysierte einige der Tools, die zur Verfügung stehen.
Beachten Sie, dass diese Liste nicht alle Schnickschnack dieses Thema. Fragen und andere Kommentare sind ebenfalls willkommen.
- « So hosten Sie mehrere Linux -Terminals zum Betrachten und Zusammenarbeit mit WEMUX aus
- Die Geschichte hinter 'init' und 'systemd' Warum 'init' musste durch 'systemd' unter Linux ersetzt werden »