Je vois toujours des gens recommander l'utilisation d' sync; sync; sync; sleep 30; halt
incantations lorsqu'ils parlent d'arrêter ou de redémarrer Linux.
J'utilise Linux depuis sa création et bien que ce soit la procédure recommandée dans les jours BSD 4.2 / 4.3 et SunOS 4, je ne me souviens pas que je devais le faire pendant au moins les dix dernières années, au cours desquelles j'ai probablement a subi l'arrêt / le redémarrage de Linux peut-être des milliers de fois.
Je soupçonne que c'est un anachronisme depuis l'époque où le noyau ne pouvait pas démonter et synchroniser le système de fichiers racine et d'autres systèmes de fichiers critiques requis même en mode mono-utilisateur (par exemple / tmp), et il était donc nécessaire de lui dire explicitement de vider autant de données que possible sur le disque.
De nos jours, sans trouver encore le code pertinent dans la source du noyau (en fouillant sur http://lxr.linux.no et google), je soupçonne que le noyau est assez intelligent pour démonter proprement même le système de fichiers racine et que le système de fichiers est assez intelligent pour effectuer efficacement une synchronisation (2) avant de se démonter pendant un shutdown
/ reboot
/ normal poweorff
.
Le "sync; sync; sync"
n'est nécessaire que dans les cas extrêmes où le système de fichiers ne se démonte pas proprement (par exemple, défaillance du disque physique) ou lorsque le système est dans un état qui ne force que le redémarrage direct (8) à le sortir de son gel (par exemple, la charge est trop élevé pour lui permettre de planifier la commande d'arrêt).
Je ne fais également jamais la sync
procédure avant de démonter les périphériques amovibles et je ne rencontre jamais de problème.
Un autre exemple - Xen permet à la DomU de recevoir une shutdown
commande du Dom0, ceci est considéré comme un "arrêt net" sans que personne n'ait à se connecter et à taper le magique d' sync; sync; sync
abord.
Ai-je raison ou ai-je eu de la chance pour quelques milliers d'arrêts du système?