next up previous contents index
Next: Redémarrage Up: Boots et Shutdowns Previous: Le processus de boot   Table des matières   Index

Précisions sur l'arrêt du système

Il est important de suivre correctement les procédures lorsqu'on éteint un système Linux sous peine d'endommager les systèmes de fichiers. La raison est que Linux possède un cache disque qui n'écrit pas les choses immédiatement sur le disque, mais seulement par moments. Ceci améliore beaucoup les performances mais signifie aussi que si l'on éteint la machine brutalement, le cache peut contenir beaucoup de données et que ce qui se trouve sur le disque peut très bien ne pas être un système de fichiers en bon état (car seules certaines choses ont été écrites sur le disque).

Une autre raison contre l'extinction brutale de la machine est que, dans un système multi-tâches, il peut y avoir beaucoup de choses qui tournent en arrière-plan, et que cette extinction peut vraiment être désastreuse. En utilisant une procédure correcte d'extinction, on s'assure que tous les processus en arrière-plan peuvent sauver leurs données.

La commande permettant d'arrêter proprement un système Linux s'appelle shutdown. Elle est généralement utilisée de deux façons possibles :

Si l'on est sur un système dont on est le seul utilisateur, la façon classique d'utiliser shutdown est de quitter tous les programmes qui s'exécutent, de se délogger de toutes les consoles virtuelles, de se logger sous root sur l'une d'elles (ou de rester loggé sous root si on y est déjà, mais on doit alors se positionner dans le répertoire racine pour éviter des problèmes lors du démontage), puis de taper la commande shutdown -h now (on substitue now avec un signe plus, suivi d'un nombre de minutes si on veut disposer d'un délai, bien que l'on n'en n'ait généralement pas besoin sur un système ayant un seul utilisateur).

Si le système a plusieurs utilisateurs, on peut, à la place, utiliser la commande shutdown -h +temps message, où temps est le temps en minutes restant avant que le système ne soit arrêté, et message est une courte explication de la raison de cet arrêt.
\begin{tscreen}
\char93  shutdown -h +10 'Nous allons installer un nouveau disqu...
...e \\
devrait etre remis en marche dans trois heures.'\\
\char93
\end{tscreen}
Cela préviendra tout le monde que le système s'arrêtera dans 10 minutes, et qu'il vaudrait mieux se délogger plutôt que de perdre des données. L'avertissement est affiché sur tous les terminaux où quelqu'un est loggé, y compris tous les xterms :
\begin{tscreen}
Broadcast message from root (ttyp0) Wed Aug 2 01:03:25 1995... \...
...es.
\par The system is going DOWN for system halt in 10 minutes !!
\end{tscreen}
L'avertissement est répété plusieurs fois avant l'arrêt, à intervalles de plus en plus courts à mesure que le délai s'épuise.

Lorsque la procédure d'arrêt commence après les délais, tous les systèmes de fichiers (sauf la racine) sont démontés, les processus utilisateurs (si quelqu'un est encore loggé) sont tués, les démons sont arrêtés, le système de fichiers racine est démonté et, généralement, tout se calme. Lorsque c'est fait, init affiche un message indiquant que l'on peut éteindre la machine. Alors, et seulement alors, on peut poser ses doigts sur le bouton d'alimentation5.6.

Quelques fois, bien que cela soit rare sur un système correct, on ne peut arrêter le système correctement. Par exemple, si le noyau panique, plante, ou se comporte mal d'une façon générale, il peut être impossible de lancer quelque commande que ce soit, et donc d'arrêter proprement le système est pour le moins difficile. La seule chose que l'on peut faire est d'espérer qu'il n'y a pas eu trop de dégâts et d'éteindre la machine. Si les problèmes sont un peu moins sévères (quelqu'un a donné un coup de hache au clavier, par exemple), et que le noyau et le programme update tournent encore normalement, il est sûrement préférable d'attendre quelques minutes pour donner à update une chance de vider le tampon du cache, et seulement alors couper l'alimentation.

Certains arrêtent le système en utilisant trois fois la commande sync5.7, attendent que l'activité disque cesse, puis éteignent la machine. S'il n'y a pas de programme en cours d'exécution, cette méthode est à peu près équivalent à l'utilisation de shutdown. Cependant, cela ne démonte pas les systèmes de fichiers et ceci peut poser des problèmes avec l'indicateur << système de fichiers ok >> de ext2fs. La méthode triple-sync n'est pas recommandée.

(Au cas où on se demanderait pourquoi : la raison des trois syncs est que, au début d'UNIX, lorsque les commandes étaient tapées séparément, cela donnait suffisamment de temps à la plupart des échanges disques pour se terminer.)


next up previous contents index
Next: Redémarrage Up: Boots et Shutdowns Previous: Le processus de boot   Table des matières   Index
root
1999-03-03