Comment réparer un système Ubuntu non réactif?


22

J'utilise Ubuntu. Parfois, le système n'a aucune réponse avec la souris et le clavier. Existe-t-il un moyen de résoudre ce problème, sauf en appuyant sur le bouton de réinitialisation de la machine?


1
c'est une question difficile parce que vous ne nous donnez pas grand-chose ... si c'était moi, je voudrais CTRL + ALT + F [1..6], me connecter et tuer certains processus. mais je sais presque toujours ce qui fait que ma machine ne répond pas, alors que vous ne le faites pas. et en plus, parfois j'écris des programmes que je connais vont le rendre insensible, parce que je veux la sortie du programme.
ixtmixilix

Êtes-vous sûr que le système ne répond plus ou est-ce que le système fonctionne toujours mais les périphériques d'entrée cessent de fonctionner?
Bobby

Réponses:


36

Si vous voulez un moyen de redémarrer, sans enregistrer les documents ouverts, mais sans appuyer sur le bouton de réinitialisation, il existe des moyens moins susceptibles de provoquer une perte de données. Tout d'abord, essayez Ctrl+ Alt+ F1. Cela devrait vous amener à une console virtuelle , comme l' a dit ixtmixilix . Une fois que vous êtes dans une console virtuelle, Ctrl+ Alt+ Deletes'arrête et redémarre la machine.

Si cette technique ne fonctionne pas, il y a toujours Alt+ SysRq+REISUB .

Quant à résoudre le problème sans redémarrer, sans plus d'informations sur ce qui se passe, il serait difficile de donner une bonne réponse. Si vous pouviez décrire les circonstances dans lesquelles cela se produit (la meilleure façon de le faire est de modifier votre question pour ajouter les informations), cela pourrait aider les gens à donner de bonnes réponses. L'autre chose à considérer est que, si votre ordinateur ne répond plus - en particulier s'il faut plus de quelques secondes pour que Ctrl+ Alt+ F1affiche une console virtuelle - alors vous avez presque certainement un bogue, et en le signalant, vous pouvez à la fois aider la communauté et peut-être obtenir une réponse.

Problèmes d'interface graphique provoquant WM ou X11 / Wayland ne répondant pas

Cela peut se produire en raison d'une interaction entre une application et un gestionnaire de fenêtres - ou le serveur X11 ou Wayland. Un signe que c'est la nature du problème est si une application cesse de répondre et vous empêche d'entrer des entrées avec le clavier ou la souris dans d'autres fenêtres d'application. (Aucune application ne devrait être en mesure de le faire; certains composants de l'interface graphique doivent contenir un bogue pour que cela se produise.) Si c'est ce qui se passe, vous pouvez tuer le processus incriminé dans une console virtuelle (comme ixtmixilix y a fait allusion):

  1. Appuyez sur Ctrl+ Alt+ F1.

  2. Connectez-vous. Vous ne verrez rien en entrant votre mot de passe. C'est normal.

  3. Utilisez un utilitaire comme pspour comprendre le nom du processus du programme incriminé. Parfois, c'est facile dans Ubuntu, et d'autres fois non. Par exemple, le nom d'un processus Archive Manager est file-roller. Si vous avez du mal à le comprendre, vous pouvez généralement trouver les informations en ligne sans trop de problèmes (ou si vous ne le pouvez pas, vous pouvez poster une question à ce sujet).

    Vous pouvez diriger psla sortie vers greppour affiner les choses. Supposons que ce soit le gestionnaire d'archives qui soit à l'origine du problème. Ensuite, vous pouvez exécuter:

    ps x | grep file-roller
    

    Vous verrez une entrée pour votre propre grepcommande, plus une entrée pour file-roller.

  4. Essayez de tuer le processus incriminé avec SIGTERM. Cela lui donne la possibilité de faire un nettoyage de dernière minute comme vider les tampons de fichiers, signaler aux serveurs distants qu'il est sur le point de se déconnecter (pour les protocoles qui le font) et libérer d'autres types de ressources. Pour ce faire, utilisez la killcommande:

    kill PID

    PIDest le numéro d'identification du processus que vous souhaitez tuer, obtenu en exécutant l' psétape 3.

  5. SIGTERMest un moyen de demander fermement à un processus d'arrêter. Le processus peut ignorer ce signal et le fera en cas de dysfonctionnement dans certaines circonstances. Vous devez donc vérifier pour voir si cela a fonctionné. Si ce n'est pas le cas, tuez-le avec SIGKILL, ce qu'il ne peut ignorer, et qui fonctionne toujours sauf dans les rares cas où le processus est en veille sans interruption (ou s'il n'est pas vraiment en cours d'exécution, mais plutôt un processus zombie ).

    Vous pouvez à la fois vérifier si le processus est toujours en cours d'exécution et le tuer avec SIGKILLs'il l'est, avec une seule commande:

    kill -KILL PID

    Si vous recevez un message comme , vous savez que le tuer avec travaillé. Si vous n'obtenez aucune sortie, vous savez que cela n'a pas fonctionné. Dans ce cas, probablement, mais cela vaut la peine de le vérifier en le réexécutant. (Appuyez sur la flèche vers le haut pour afficher les commandes précédentes, pour faciliter la saisie.)kill: (PID) - No such processSIGTERMSIGTERMSIGKILL

  6. Dans de rares cas pour vos propres processus, ou toujours avec des processus appartenant à rootou à un autre utilisateur que vous-même, vous devez tuer le processus en tant que root. Pour ce faire, ajoutez le préfixe sudo (y compris l'espace de fin) avant les killcommandes ci-dessus . Si les commandes ci-dessus ne fonctionnent pas ou si l'on vous dit que vous ne disposez pas de l'accès nécessaire pour tuer le processus, essayez-le comme rootavec sudo.

(Soit dit en passant, kill -KILLest le même que le plus populaire kill -9. Je recommande kill -KILLcar il SIGKILLn'est pas garanti d'avoir 9comme numéro de signal sur toutes les plates-formes. Il fonctionne sur x86, mais cela ne signifie pas qu'il fonctionnera nécessairement partout. De cette façon, kill -KILLest plus susceptible de terminer le processus avec succès que kill -9. Mais ils sont équivalents sur x86, alors n'hésitez pas à l'utiliser si vous le souhaitez.)

Si vous savez qu'il n'y a pas d'autres processus portant le même nom que celui que vous souhaitez tuer, vous pouvez utiliser à la killallplace de killet le nom du processus au lieu du numéro d'identification du processus.

Un processus monopolisant les ressources CPU

Si un processus s'exécute à ou très près de la priorité la plus élevée possible (ou pour l'énoncer plus correctement, à ou près de la plus faible gentillesse possible ), il pourrait potentiellement rendre votre interface utilisateur graphique complètement, ou presque complètement, ne répondant pas. Cependant, dans cette situation, vous ne pourrez probablement pas basculer vers une console virtuelle et exécuter des commandes (ou peut-être même redémarrer).

Si un processus ou une combinaison de processus exécutés avec une priorité normale ou modérément élevée ralentit votre machine, vous devriez pouvoir les tuer en utilisant la technique décrite dans la section ci-dessus. Mais s'il s'agit de programmes graphiques, vous pouvez également les tuer en cliquant sur le bouton de fermeture de leurs fenêtres - l'environnement de bureau vous donnera la possibilité de les tuer s'ils ne répondent pas. Si cela ne fonctionne pas, vous pouvez bien sûr (presque) toujours les tuer avec kill -KILL.

Problèmes d'E / S

Les E / S buggy peuvent provoquer une absence de réponse prolongée (voire perpétuelle). Cela peut être dû à un bug du noyau et / ou des pilotes de buggy. Une solution de contournement partielle consiste à éviter des opérations de lecture et / ou d'écriture lourdes et simultanées (par exemple, ne copiez pas deux gros fichiers à la fois, en deux processus de copie simultanés; ne copiez pas un gros fichier tout en regardant une vidéo HD ou en installant un OS dans une machine virtuelle).

Ce n'est évidemment pas satisfaisant et la vraie solution est de trouver le problème et de le signaler. Sauf si vous exécutez un noyau principal à partir de kernel.org , les bogues du noyau doivent être signalés par rapport au package linuxdans Ubuntu (car Ubuntu fournit des versions de noyau spéciales qui intègrent des correctifs spécifiques aux distributions, et les rapports de bogues non confirmés par rapport à un noyau principal seront rejetés à kernel.org ). Vous devez le faire en exécutant ubuntu-bug linux(ou apport-cli linux) sur la machine affectée. Consultez d' abord la documentation de rapport de bogue d'Ubuntu ; il explique comment procéder correctement.

Problèmes de carte graphique

Certains blocages de l'interface graphique peuvent être causés par des problèmes de carte graphique. Vous pouvez essayer plusieurs choses pour y remédier:

  1. Recherchez sur le Web si d'autres personnes ont rencontré des problèmes similaires avec la même carte vidéo (et / ou la marque et le modèle de machine) sur Ubuntu ou d'autres distributions GNU / Linux. Il peut y avoir des solutions plus spécifiques que ce que je peux offrir dans cette réponse, sans informations plus spécifiques que ce qui est actuellement dans votre question.

  2. Vérifiez si différents pilotes vidéo sont disponibles pour vous. Vous pouvez le faire en archivant des pilotes supplémentaires; vous pouvez également rechercher sur le Web pour voir quels pilotes Linux sont disponibles pour votre carte vidéo. La plupart des cartes vidéo propriétaires sont Intel, AMD / ATi ou Nvidia (cliquez sur ces liens pour voir la documentation de la communauté sur l'installation et l'utilisation des pilotes propriétaires de ces cartes dans Ubuntu). Pour Intel, il vaut mieux s'en tenir aux pilotes FOSS qui sont présents dans Ubuntu, mais il y a toujours des informations utiles que vous pouvez utiliser. Quelle que soit votre carte, ces informations générales peuvent vous aider.

    Si vous utilisez actuellement des pilotes propriétaires, vous pouvez essayer d'utiliser différents pilotes propriétaires (par exemple, directement à partir de NVidia ou AMD / ATi), ou vous pouvez plutôt utiliser les pilotes open source gratuits.

  3. Essayez de sélectionner un type de session de connexion graphique qui ne nécessite pas / n'utilise pas d'accélération graphique. Pour ce faire, déconnectez-vous et sur l'écran de connexion graphique, cliquez sur le logo Ubuntu ou l'icône d'engrenage près de votre nom de connexion. Un menu déroulant s'affiche. Modifiez la sélection d' Ubuntu en Ubuntu 2D . Cela vous fait utiliser Unity 2D au lieu de Unity . (Si vous utilisez GNOME Shell , vous pouvez sélectionner GNOME Fallback / GNOME Classic à la place.) En cas de doute et il y a une sélection qui dit "pas d'effets", choisissez-la, car c'est probablement la plus sûre.

    Cette question contient des informations supplémentaires sur les différentes interfaces graphiques que vous pouvez choisir dans Ubuntu.

  4. Dans les versions plus récentes d'Ubuntu, vous pouvez choisir entre X.org et Wayland sur l'écran de connexion. Quelle que soit celle que vous utilisiez, essayez l'autre. Parfois, un problème avec Wayland peut être résolu en utilisant X.org, ou vice versa.

  5. Signaler un bug.

J'espère que les informations ci-dessus ont fourni des informations générales sur ce qui pourrait être à l'origine de ce type de problème. Il devrait également servir à éclairer le type d'informations qui pourraient vous être utiles à ajouter à votre question (en fonction des détails spécifiques du problème), pour permettre d'obtenir une réponse encore meilleure. (Ou pour améliorer cette réponse avec des informations supplémentaires spécifiques à votre situation.)


1
Conseils bien conçus pour résoudre les problèmes de blocage.
Cool Charac

Si le clavier ne répond plus, il n'est pas possible d'utiliser Ctrl + Alt + FN
szx

7

Oui, la façon la plus simple de l'archiver est d'activer les clés pour tuer le serveur Xorg et de relancer la session X.

Pour l'activer, ouvrez Paramètres système -> Options de disposition du clavier (ou utilisez la keyboardcommande dans l'interface Unity, appuyez sur AltF2) et cochez cette option:

Ctrl + Alt + Retour arrière

entrez la description de l'image ici

Donc, quand il se bloque, hit CtrlAltBackspacetue le serveur X et lightdm relance l'interface de connexion


Alt+Print+Kfera la même chose hors de la boîte, non?
Bobby
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.