Nadal widzę, że ludzie zalecają stosowanie sync; sync; sync; sleep 30; haltinkantacji, gdy mówią o wyłączeniu lub ponownym uruchomieniu Linuxa.
Używam Linuksa od jego powstania i chociaż była to zalecana procedura w BSD 4.2 / 4.3 i SunOS 4 dni, nie mogę sobie przypomnieć, że musiałem to robić przez co najmniej dziesięć ostatnich lat, podczas których prawdopodobnie przeszedł przez zamknięcie / ponowne uruchomienie Linuksa może tysiące razy.
Podejrzewam, że jest to anachronizm od czasów, gdy jądro nie mogło odmontować i zsynchronizować głównego systemu plików i innych krytycznych systemów plików wymaganych nawet w trybie pojedynczego użytkownika (np. / Tmp), i dlatego konieczne było wyraźne poinformowanie go o konieczności opróżnienia jak najwięcej danych na dysk.
Obecnie, nie znajdując jeszcze odpowiedniego kodu w źródle jądra (przeglądając http://lxr.linux.no i google), podejrzewam, że jądro jest wystarczająco inteligentne, aby czysto odmontować nawet główny system plików, a system plików jest wystarczająco inteligentny aby skutecznie wykonać synchronizację (2) przed odmontowaniem się podczas normalnego shutdown/ reboot/ poweorff.
Jest "sync; sync; sync"to konieczne tylko w skrajnych przypadkach, gdy system plików nie odmontuje się czysto (np. Awaria dysku fizycznego) lub system jest w stanie, że wymuszenie bezpośredniego ponownego uruchomienia (8) spowoduje jego zawieszenie (np. Obciążenie jest zbyt duże high, aby zaplanować polecenie zamknięcia).
Nigdy też nie wykonuję tej syncprocedury przed odmontowaniem urządzeń wymiennych i nigdy nie napotkałem problemu.
Kolejny przykład - Xen pozwala DomU na wysłanie shutdownpolecenia z Dom0, jest to uważane za „czyste zamknięcie” bez konieczności logowania się i wpisywania magicznej nazwy sync; sync; sync.
Czy mam rację, czy miałem szczęście przez kilka tysięcy wyłączeń systemu?