Vedo ancora che le persone raccomandano l'uso degli sync; sync; sync; sleep 30; halt
incantesimi quando parlano di chiudere o riavviare Linux.
Ho eseguito Linux sin dal suo inizio e sebbene questa fosse la procedura consigliata nei giorni BSD 4.2 / 4.3 e SunOS 4, non ricordo che dovevo farlo per almeno gli ultimi dieci anni, durante i quali probabilmente è stato sottoposto a spegnimento / riavvio di Linux forse migliaia di volte.
Ho il sospetto che si tratti di un anacronismo sin dai tempi in cui il kernel non poteva smontare e sincronizzare il filesystem di root e altri filesystem critici richiesti anche durante la modalità single-user (es. / Tmp), e quindi era necessario dirlo esplicitamente di svuotare quanti più dati possibile sul disco.
In questi giorni, senza trovare ancora il codice rilevante nel sorgente del kernel (scavando attraverso http://lxr.linux.no e google), sospetto che il kernel sia abbastanza intelligente da smontare in modo pulito anche il filesystem di root e il filesystem è abbastanza intelligente eseguire effettivamente una sincronizzazione (2) prima di smontare se stesso durante un normale shutdown
/ reboot
/ poweorff
.
È "sync; sync; sync"
necessario solo in casi estremi in cui il filesystem non si smonterà in modo pulito (ad es. Guasto del disco fisico) o il sistema è in uno stato che solo forzando un riavvio diretto (8) lo farà uscire dal suo blocco (ad es. Il carico è troppo alto per consentire di programmare il comando di arresto).
Inoltre, non sync
eseguo mai la procedura prima di smontare i dispositivi rimovibili e non ho mai riscontrato un problema.
Un altro esempio: Xen consente a DomU di ricevere un shutdown
comando da Dom0, questo è considerato un "arresto pulito" senza che nessuno debba effettuare il login e digitare sync; sync; sync
prima il magico .
Ho ragione o sono stato fortunato per alcune migliaia di arresti del sistema?