6. Arrêt du système [shutdown] et redémarrage [reboot]

Les changements dans les tampons mémoires [buffers] ne sont pas immédiatement répercutés sur disque, on parle d'écritures asynchrones. Cela permet d'améliorer notablement les performances des opérations d'E/S. Mais le système est susceptible de perdre des données en cas d'arrêt imprévu (c'est moins le cas aujourd'hui pour les systèmes de fichiers journalisés).

Savoir arrêter ou rebooter son système correctement permet d'éviter bien des problèmes. Ils existent plusieurs méthodes :

La commande /sbin/shutdown (GNU/Linux)

SYNOPSIS :
                                                                                

shutdown [-t sec] [-arkhncfF] [time] [warning-message]

C'est la manière la plus sure pour :

  • arrêter proprement (-h) le système,

  • rebooter proprement (-r) le système,

  • passer en mode mono-utilisateur (option par défaut).

Cette commande prévient les processus en cours d'exécution en leur envoyant le signal de terminaison SIGTERM. Elle notifie au processus INIT le changement de runlevel :

  • 0 [init 0] : arrêt.

  • 1 [init 1] : mode mono-utilisateur, maintenance.

  • 6 [init 6] : reboot.

Arrêter le système immédiatement [runleval 0] : /sbin/shutdown -h now.

Arrêter dans 20 minutes [runlevel 0] :

# /sbin/shutdown -h +20 "Arret du systeme, pour maintenance"                    


Reboot à 12h30 (runlevel 6) :                                                   

# /sbin/shutdown -r 12:30                                                       

La commande /sbin/halt (GNU/Linux)

SYNOPSIS :
                                                                                

halt [-n] [-w] [-d] [-f] [-i]

Exécute les tâches essentielles pour l'arrêt du système (appelé par la commande shutdown avec l'argument -h) :

  • termine les processus non essentiels.

  • exécute l'appel système call.

  • attend que toutes les écritures soient complètes.

  • arrête le noyau.

Eléments d'administration système
Arrêter le système immédiatement :

# /sbin/halt                                                                    

La commande /sbin/reboot (GNU/Linux)

SYNOPSIS :
                                                                                

reboot [-n] [-w] [-d] [-f] [-i]

Fonctionnement similaire à la commande halt, mais effectue un redémarrage [reboot].

« Rebooter » le système immédiatement :

# /sbin/reboot                                                                  

La commande /sbin/init (GNU/Linux)

La commande telinit est un lien symbolique sur init.

SYNOPSIS :
                                                                                

init [-a] [-s] [-b] [-z xxx] [0123456Ss]

Passer en mode maintenance (mono-utilisateur)

# /sbin/init 1                                                                  

La commande /sbin/poweroff (GNU/Linux)

SYNOPSIS :
                                                                                

poweroff [-n] [-w] [-d] [-f] [-i] [-h]

Fonctionnement identique à la commande halt, mais envoit une requête pour couper explicitement l'alimentation électrique sur les systèmes possèdant un gestionnaire d'alimentation.