Proghiphop
    Login  

Was ist der Unterschied zwischen Boot-Targets und Runlevels in Linux?

Advertisement

Run-Levels sind ein älteres Konzept, das jetzt veraltete System V init-System verwendet.

Der moderne Austausch, systemd, verwendet Boot-Ziele. Diese sind flexibler als Run-Levels, weil sie sich wie andere Einheiten verhalten: Sie können benannt, abhängig von Einheiten und abhängig sein von, symlinked, und so weiter.

Auf meinem System, dass ich dies schreibe, Fedora 23, sind Kompatibilitätsziele, die Laufniveaus darstellen, wie folgt symlinked:

  Runlevel0.target -> poweroff.target runlevel1.target -> rescue.target runlevel2.target -> multi-user.target runlevel3.target -> multi-user.target runlevel4.target -> multi-user.target runlevel5.target - > Grafische.target runlevel6.target -> reboot.target 


Boot-Ziele sind in der Regel verschiedene Versionen des Linux-Betriebssystems oder mehrere Versionen der gleichen Version mit verschiedenen (vielleicht experimentelle) Optionen kompiliert. Es ist eine gute Idee, das vorherige Boot-Ziel nach einem OS-Upgrade nur zu behalten, falls Probleme auftauchen und es notwendig ist, wieder in die frühere Version zurückzukehren.

Runlevels hingegen sind unterschiedliche Betriebsarten innerhalb eines gegebenen Release.

  • Runlevel 3 ist die normale Betriebsart, die mehrere Benutzer und normale Netzwerkkommunikation ermöglicht. Alle Prozesse, die zum Ausführen konfiguriert sind, werden ebenfalls gestartet.
  • Wenn ein Shutdown-Befehl ausgegeben wird, wird der Runlevel auf 0 geschaltet. Auf diesem Runlevel werden Dateien geschlossen und die Prozesse werden gestoppt, bevor der Computer gestoppt wird.
  • Neustarten eines Linux-Systems verwendet Runlevel 6. Es ist ähnlich zu einem Runlevel 0 kombiniert mit einem Runlevel 3 (oder 1 oder 2).
  • Runlevel 1 ist Single-User-Modus. Dies wird auch als Wartungsmodus bezeichnet, da sich im Allgemeinen nur der Root-Benutzer von einer direkt angeschlossenen Konsole aus anmelden kann. Üblicherweise werden nur so wenige wie Prozesse gestartet, die unbedingt erforderlich sind. Dies wird bei Großinstallationen oder OS-Upgrades verwendet.
  • Runlevel 2 ist Mehrbenutzermodus, aber ohne Netzwerk. Normalerweise sehe ich dies nur als Zwischenschritt nach dem Booten, bevor ich Runlevel 3 betrete.


Runlevels waren ein hässliches Konzept in frühen Linux-Versionen, die vom SysV-Init-System implementiert wurden. Ich bevorzugte immer den BSD-Ansatz, der nicht über das Konzept, einfach einfach alles starten oder alles stoppen.

Bei der Implementierung handelte es sich um Verzeichnisse mit nummerierten Start- und Stop-Scripts (in der Regel Symlinks zu den eigentlichen Skripten), die Nummern werden manuell festgelegt, um die richtige Reihenfolge für das Starten / Stoppen aller Systemdienste anzugeben. Aus irgendeinem Grund Start X war ein separater Runlevel, vielleicht für eingebettete Systeme ohne Grafiken zu ermöglichen.

Auf modernen Systemen unterscheidet sich das Start / Stopp-Problem, da sich die Geräte geändert haben. Es gibt viele Geräte, die hotswapable (zB USB) sind und es gibt ACPI-Tabellen, die die Energieverwaltungsmodi für verschiedene Geräte angeben. So haben wir jetzt nicht mehr ein dynamisches Start / Stopp-Modell, da Geräte angeschlossen / getrennte Dienste gestartet / gestoppt werden müssen und diese Dienste Abhängigkeiten haben, die vor ihnen gestartet werden müssen und automatisch gestoppt werden, wenn nichts anderes sie benutzt


Sie können austauschbar verwendet werden

Verwendet für RHEL Familie

Ebene

0 halt

1 oder s Einzelbenutzermodus

3 Multi-User-Nicht-Grafiken

5 Multi-User-Grafiken

6 neu starten

Denken Sie daran, die Run-Levels sind etwas willkürlich. Es ist möglich, auch BSD-Run-Levels zu vereinfachen. Systemd verwendet Ziele wie z. B. Mehrbenutzer- oder grafische Ziele. Allerdings sind diese Ziele auf System V Run Ebenen.

Reproduced please specify from Proghiphop and this article link: Proghiphop » Was ist der Unterschied zwischen Boot-Targets und Runlevels in Linux?

Comments