Ich sehe immer noch Leute, die die Verwendung von sync; sync; sync; sleep 30; halt
Beschwörungsformeln empfehlen, wenn sie über das Herunterfahren oder Neustarten von Linux sprechen.
Ich habe Linux von Anfang an ausgeführt, und obwohl dies in BSD 4.2 / 4.3 und SunOS 4 Tage empfohlen wurde, kann ich mich nicht erinnern, dass ich dies in den letzten zehn Jahren getan habe, in denen ich wahrscheinlich war Linux wurde möglicherweise tausende Male heruntergefahren / neu gestartet.
Ich vermute, dass dies ein Anachronismus ist, da der Kernel das Root-Dateisystem und andere wichtige Dateisysteme, die selbst im Einzelbenutzermodus (z. B. / tmp) benötigt werden, nicht mehr aushängen und synchronisieren konnte so viele Daten wie möglich auf die Festplatte.
In diesen Tagen habe ich den Verdacht, dass der Kernel intelligent genug ist, um selbst das Root-Dateisystem und das Dateisystem sauber zu entladen , ohne den relevanten Code in der Kernelquelle zu finden (siehe http://lxr.linux.no und google) um effektiv während eines normalen vor sich Aushängen ein sync (2) do shutdown
/ reboot
/ poweorff
.
Das "sync; sync; sync"
ist nur notwendig , in extremen Fällen , in denen das Dateisystem nicht aushänge sauber (zB physischer Plattenausfall) oder das System in einem Zustand ist , dass nur eine direkte Neustart zwingt (8) wird es seine Gefrieren raus (zB die Last zu ist hoch, um den Befehl zum Herunterfahren einzuplanen).
Ich sync
führe die Prozedur auch nie vor dem Abmelden von Wechseldatenträgern aus und stoße nie auf ein Problem.
Ein weiteres Beispiel - Xen ermöglicht es der DomU, einen shutdown
Befehl von Dom0 zu senden. Dies wird als "sauberes Herunterfahren" betrachtet, ohne dass sich jemand anmelden und zuerst den magischen Befehl eingeben muss sync; sync; sync
.
Habe ich recht oder hatte ich Glück für ein paar tausend Systemstillstände?