Ist der Neustart der gleiche wie bei init 6?

22

Ist Neustart dasselbe wie Init 6 für Ubuntu?

Ich verwende Ubuntu 12.04 auf Amazon EC2. Wenn ich in die Box gehe, kann ich tippen runlevelund bekomme:

N 2

Auf den ersten Blick man rebootsehe ich Folgendes:

Wenn dieses Tool mit --force oder Runlevel 0 oder 6 aufgerufen wird, ruft es den Systemaufruf reboot (2) auf und startet das System direkt neu. Andernfalls wird einfach das Tool shutdown (8) mit den entsprechenden Argumenten aufgerufen.

Wenn ich lese, man shutdown 8sehe ich:

Herunterfahren sorgt dafür, dass das System auf sichere Weise heruntergefahren wird. Alle angemeldeten Benutzer werden benachrichtigt, dass das System ausfällt, und innerhalb der letzten fünf Minuten nach TIME werden neue Anmeldungen verhindert.

Mein Grundverständnis über den Unterschied zwischen rebootund init 6ist:

  • In anderen Distributionen und vielleicht in älteren Distributionen werden rebootdie Datenträger einfach abgehängt und der Netzschalter betätigt, ohne dass Shutdown-Skripte ausgeführt werden
  • init 6Führt alle Shutdown-Skripte aus, /etc/init/rc.*da dies den Runlevel des Systems verringert
  • In neueren Versionen von Ubuntu führt der rebootBefehl ohne --forceoder -fden Befehl shutdown aus, der im Grunde das Gleiche bewirkt wieinit 6
  • Es ist wahrscheinlich besser in der Gewohnheit, zu verwenden , init 6anstatt rebootwie es sicherer ist , und würde besser funktionieren Cross-Distro, aber das Standardverhalten rebootgeändert worden ist, um zu versuchen und verhindern Fehler / dataloss , wenn jemand es nicht verwendet.

Ist das ungefähr richtig? Wenn nicht, was fehle ich?

cwd
quelle

Antworten:

22

Es gibt wirklich nie einen zwingenden Grund, init 6statt zu verwenden reboot, außer:

  • Aus irgendeinem Grund fehlt Ihnen die rebootausführbare Datei oder
  • Sie versuchen absichtlich zu vermeiden, Benutzer zu benachrichtigen, dass das System ausfällt.

reboot(solange du nicht rennst reboot --force) ist eigentlich die "sanftere" Art herunterzufahren.

Erwägen:

init 6Führt alle Shutdown-Skripte aus, /etc/init/rc.*da dies den Runlevel des Systems verringert

Aber der rebootBefehl , genannt , ohne die --forceFlagge, bootet nur direkt das System (über den rebootSystemaufruf ) , wenn eine dieser beiden Situationen zutrifft:

  • Das System befindet sich im Runlevel 0 (Einzelbenutzermodus), sodass der Runlevel nicht reduziert werden kann und daher keine Shutdown-Skripts automatisch ausgeführt werden.
  • Das System befindet sich in Runlevel 6. Was init 6bedeutet es, das System in Runlevel 6 zu versetzen ? Auch hier wird nichts ausgeführt init 6, was das Ausführen des rebootBefehls nicht bewirkt.

Ansonsten sudo rebootist gleichbedeutend mit sudo shutdown -r now. Das macht all die schönen Dinge sudo init 6, aber auch:

  • benachrichtigt Benutzer, dass das System ausfällt.
  • verhindert neue Logins (obwohl sie wahrscheinlich sowieso nicht erfolgreich wären).
  • ist intuitiver und selbstdokumentierend alssudo init 6 .

Wenn Sie auf einem System arbeiten, auf dem nur Sie und nur lokale Benutzer angemeldet sind, ist die Verwendung von init 6zum Neustart nichts Falsches . Wenn Sie es vorziehen, so neu zu starten, dann machen Sie auf jeden Fall weiter - Sie schaden nichts, indem Sie dies tun. Aber es gibt auch nichts objektiv Bevorzugtes, wenn man es so macht.

initDie eigene Dokumentation besagt, dass dies nicht der normale Weg ist, um das System herunterzufahren oder neu zu starten. Bedenken Sie, dass, wenn inites vom Benutzer ausgeführt wird (wie beim Ausführen sudo init 6), es tatsächlich ausgeführt wird telinit(siehe man init). telinitändert tatsächlich Runlevel. Und man telinitsagt uns:

Normalerweise verwenden Sie das Tool shutdown (8), um das System anzuhalten, neu zu starten oder in den Einzelbenutzermodus zu versetzen.

Eliah Kagan
quelle
Ich habe Alienware X51 Dell PC, wo ich Ubuntu 13.04 und Kernel 3.11 installiert habe. Wenn ich $ init 6 mache, wird es neu gestartet und manchmal wird das BIOS für immer angezeigt. IST es, weil ich Init 6 benutze und nicht den Befehl reboote?
1
@ YumYumYum Ich verstehe nicht, warum die Verwendung init 6dies verursachen würde. Wenn Sie rebootanstelle von verwenden init 6, kommt es immer über das BIOS hinaus?
Eliah Kagan
1
Ich habe die BIOS-Firmware von A00 auf A02 aktualisiert, seitdem funktioniert mein Neustart oder Init 6 beide, so dass es so aussieht, als ob ein BIOS-Problem vorliegt. Vielen Dank.
Laufen rebootmanchmal Aussetzer auf meinem Ubuntu Server 14.02 einzelner Benutzer und lokale Anmeldung. Ist es sicher, dass mir immer ein syncfolgt reboot -f?
user3549648