Gel ou panne du système

De Wiki de la communauté Mandriva.

Il arrive parfois, sous Mandriva (et GNU/Linux en général), de se retrouver face à un gel du système (ou "plantage"). Mais sachez qu'avant de redémarrer brutalement votre ordinateur par le bouton reset, il existe de nombreuses possibilités pour en sortir proprement.

Sommaire

Plantage d'une application

Vous gardez le contrôle de la souris

Si vous avez encore le contrôle de la souris, vous pouvez essayer de cliquer sur le croix en haut à droite de la fenêtre. Avec un peu de chance, une fenêtre apparaîtra pour vous proposer de terminer le programme. Vous pouvez alors fermer le programme qui ne répond plus, mais sachez tout de même que vos données non-enregistrées seront perdues.

Tuer une application graphique gelée : <Ctrl-Alt-Echap> sous KDE

Cette combinaison de touches permet de déconnecter un programme du serveur X Windows, à l'aide de la souris.

Le curseur de la souris prend la forme d'une tête de mort, il suffit alors de cliquer sur la fenêtre correspondant au programme à tuer.

Peut être remplacé par une saisie en console graphique de la commande xkill.

Après disparition de la fenêtre, il peut être prudent de vérifier ensuite que le processus correspondant au programme a vraiment été tué.

Notez que cette séquence de touches est une « bascule » : si vous décidez finalement de ne rien tuer et de rendre au curseur de la souris son apparence habituelle, il vous suffit de retaper la même séquence.

Attention !
Attention : pour lancer cette commande vous devez maintenir enfoncées les deux premières touches (<CTRL> et <ALT>) et enfoncer ensuite brièvement la touche <ECHAP>, si vous laissez cette dernière enfoncée trop longtemps vous risquez de déclencher involontairement la « bascule ».


Vous n'avez plus le contrôle de la souris

Si vous n'avez plus le contrôle de la souris, par exemple lors du plantage d'un programme en plein écran, comme un jeu, ou que le système ne répond pas lors des clics, lancez une console texte par la commande <Ctrl-Alt-F1>. Pour revenir à l'interface graphique, taper sur <Alt-F7>. La console texte permet de tuer le processus qui pose problème.

Après 2 lignes de descriptif de votre machine, vous donnant votre version de Mandriva Linux, ainsi que votre version du noyau (Kernel), comme :

Mandriva linux release 2008 for i586
Kernel 2.6.24-2-desktop-4mdv on a i686 tty

Vous verrez alors un message vous demandant :

localhost login:

localhost étant le nom de votre machine.

Entrez ici votre nom d'utilisateur, puis cliquez sur <Entrée>. La console vous demande alors votre mot de passe utilisateur par :

password:

Vous pouvez alors entrer votre mot de passe (vous ne le verrez pas s'afficher) et appuyer sur <Entrée>. Vous devez obtenir une invite similaire à :

Image:Konsole.png
[utilisateur@ordi ~]$


Si vous connaissez le programme en cause

Les commandes kill et killall
La commande kill s'applique à un PID (Process Identifier), qui est le numéro d'ordre du processus. La commande killall s'applique, elle, à un nom de processus. Ces commandes envoient un signal au processus. Ce signal peut être choisi grâce à une option, comme kill -15, qui indique au processus qu'il doit s'arrêter ou kill -9 qui indique directement au système de terminer le processus. Attention : si vous passez une option explicite, toujours essayer d'abord l'option -15, qui est l'option par défaut et qui permet au processus de « faire le ménage » proprement avant de mourir, et ne tenter -9 qu'en dernier recours, seulement si -15 n'a pas suffit.
Davantage sur les signaux
Sous Linux les signaux possèdent des noms. Le signal de « mort propre » -15 s'appelle SIGTERM et le signal de mort brutale, -9, s'appelle SIGKILL. On peut aussi envoyer ces signaux en utilisant la partie significative de leur nom en guise d'options (et c'est ainsi qu'il est vivement recommandé de procéder lorsque vous écrivez un script), ce qui donne des commandes comme : kill -TERM PID, killall -KILL programme etc.

Si vous connaissez le nom du programme qui plante, vous pouvez essayer de taper directement :

Image:Konsole.png
[utilisateur@ordi ~]$ killall programme

En remplaçant bien sûr programme par le nom du logiciel fauteur de trouble.

Si une nouvelle invite apparaît directement, sans aucun message, c'est que le programme a été tué. Vous pouvez tenter de retourner dans l'interface graphique via <Alt-F7>, et vous avez des chances de retrouver votre système en état de marche.

Il peut s'afficher un message semblable à :

Image:Konsole.png
[utilisateur@ordi ~]$ killall programme


programme: aucun processus tué

Dans ce cas, essayez l'option de dernier recours -9 :

Image:Konsole.png
[utilisateur@ordi ~]$ killall -9 programme

Si cela ne marche toujours pas, c'est sans doute que le nom du programme devait être incorrect, et vous pouvez passer à la suite des instructions.


Identifier le processus à l'origine du gel du système

La commande top
Le programme top fournit une vue en temps réel du système. Elle permet de contrôler finement les processus en cours, en les classant par consommation processeur, par consommation mémoire, etc

Vous pouvez utiliser le programme top en tapant top dans l'invite de commande, pour trouver le programme qui pose problème :

Image:Konsole.png
[utilisateur@ordi ~]$ top

Pressez sur <Entrée>, vous verrez alors apparaître un tableau dynamique classant les processus en cours selon leur consommation processeur. La colonne USER indique le nom de l'utilisateur ayant lancé de processus (root est l'administrateur). Cherchez dans la colonne COMMAND le nom du programme que vous désirez arrêter. Notez la valeur correspondante dans le colonne PID. Vous pouvez quitter top en appuyant sur la touche Q. Vous retrouvez alors un nouvelle invite, et pouvez passer à la fermeture du programme.

Si top ne vous a pas permis d'identifier la cause de plantage, essayez avec le programme ps :

Image:Konsole.png
[utilisateur@ordi ~]$ ps -A

Cette commande affichera une liste des programmes lancés, les plus récents étant en fin de liste (il est probable que toute la liste ne soit pas visible).

Si vous identifiez le programme dans la liste, notez son PID, qui est le chiffre affiché à gauche de la ligne, et passez à le suite.


Si vous suppecter une force utilisation du disque dur, vous pouvez installer iotop qui surveillera l'activité lecture/écriture. Il est basé sur le même principe que top.

Pour installer iotop, lancez Image:drakrpm-icon.png Installer et désinstaller des logiciels et recherchez le paquet iotop.

Sélectionnez-le et cliquez sur Appliquer (Aide).

Vous pouvez également l'installer en utilisant la console en tant qu'administrateur avec la commande suivante : urpmi iotop

Terminer le programme causant le gel

Si vous avez trouvé le programme à stopper, utilisez son PID, faites :

Image:Konsole.png
[utilisateur@ordi ~]$ kill PID

En remplaçant PID par le nombre que vous venez de noter. L'application en cause devrait alors se fermer immédiatement, et vous pouvez retourner sous votre environnement de bureau via <Alt-F7>.

Si cette commande n'a pas fonctionné, vous pouvez tenter :

Image:Konsole.png
[utilisateur@ordi ~]$ kill -9 PID

En remplaçant toujours PID par celui de votre programme, ce qui a pour effet de fermer brutalement votre programme.

Retournez alors dans votre interface graphique par <Alt-F7>.

Si le problème n'est pas réglé, continuez en redémarrant le serveur X.


Redémarrer le serveur X

Attention !
Sous Mandriva 2009 Spring, la fonction suivante est désactivée par défaut. Vous devez éditer le fichier /etc/X11/xorg.conf en mode super-utilisateur et ajouter sous la section "ServerFlags"' le texte suivant : Option "DontZap" "false"
Astuce !
Voir comment éditer des fichiers de configuration si vous ne savez pas comment proceder.

Pour redémarrer le serveur d'affichage (serveur X) faites <Ctrl-Alt-Backspace> (Backspace est la touche située au-dessus de la touche entrée, elle représente une flèche vers la gauche). Toutes les données non-enregistrées seront perdues.

Vous quittez alors votre environnement de bureau et revenez à l'écran de connexion, où vous pouvez vous reconnecter.

Dernier recours : les touches magiques SysRq

Si le clavier et la souris ne répondent pas, et/ou si l'écran est totalement noir, et que vous n'avez pas pu régler le problème avec les méthodes précédentes, il reste une dernière solution. En effet, lors d'un plantage, il est rare que le noyau lui-même plante. Il est alors possible de reprendre le contrôle en communiquent directement avec le noyau grâce aux touches magiques (plus d'informations sur Raccourcis clavier). Ce sont des combinaisons de trois touches, dont la touche <Alt> à gauche de la barre espace, et la touche <SysRq>, aussi appelée <F13>, <Syst>, ou <Impécr>. Il vaut mieux, si possible, être en console texte, par la commande <Ctrl-Alt-F1>, pour voir les messages éventuels s'afficher, mais ce n'est pas indispensable.

Un troisième touche leur est associée selon l'action à réaliser.

Voici un enchaînement possible pour redémarrer l'ordinateur :

  1. <Alt-SysRq-R> (met le clavier en mode raw)
  2. <Ctrl-Alt-Suppr> (redémarrage du système)

À titre de second recours, si la séquence qui précède n'a pas permis le redémarrage, faire successivement :

  1. <Alt-SysRq-S> (synchronisation : tous les tampons de données sont écrits sur le disque, évite des pertes de données)
  2. <Alt-SysRq-U> (démonte tous les disques)
  3. <Alt-SysRq-B> (pour redémarrer) OU <Alt-SysRq-O> (pour arrêter le système).
Astuce !
Vous pouvez retenir cette séquence comme <Alt-SysRq>+SUB (comme SUBalterne ou Yellow SUBmarine) ou <Alt+Syst+RSEISUB

Si, d'un autre côté, votre machine est bloquée par une ou plusieurs applications trop "gourmandes" et si vous souhaitez les tuer sans arrêter ou redémarrer la machine, vous pouvez, au lieu des séquences précédentes, tenter ceci :

  1. <CTrl-Alt-F1> (passer en console texte)
  2. <Alt-SysRq-E> (pour tuer proprement tous les processus)
  3. <Alt-SysRq-I> (pour tuer les processus qui auraient échappé à la commande précédente)
  4. Taper en console votre identifiant suivi d'<Entrée> puis votre mot de passe suivi d'<Entrée> pour vous connecter en tant qu'utilisateur.
  5. Taper startx suivi d'<Entrée>, pour relancer l'interface graphique.
Astuce !
Vous pouvez retenir la séquence <Alt+Syst>+RSEISUB

Si aucune de ces méthodes ne fonctionne

Si aucune des méthodes décrites, notamment les touches SysRq, ne permet de sortir du plantage "proprement", il ne vous reste plus alors qu'à éteindre votre ordinateur en pressant quelques secondes le bouton de mise sous tension. Un tel problème laisse fortement supposer un problème matériel, peut-être au niveau de la mémoire vive ou du processeur. Mais ces paniques du noyau endommagent très rarement votre système Linux qui, la plupart du temps, se remet à fonctionner normalement.


Liens

Internes

Externes