GNU/Linux >> Tutoriels Linux >  >> Linux

Système Linux gelé ? Voici 3 façons d'y faire face

Linux est connu pour être très stable, mais même le système le plus stable peut rencontrer des situations qui l'empêchent de répondre. Vient ensuite la sensation affreuse lorsque vous appuyez et maintenez « Puissance ». Il y a quelques astuces avec Linux que l'on peut essayer dans un tel cas. À ce stade, nous ne cherchons pas à enregistrer un travail non enregistré. Nous voulons trouver un moyen d'éviter un redémarrage ou au moins de fournir le redémarrage le plus propre possible pour éviter la corruption.

Pour les besoins de cet article, Linux peut être considéré comme un ensemble de 2 piles :la pile noyau et la pile utilisateur. Quelque part à l'intérieur de la pile utilisateur, vous avez des programmes en cours d'exécution. Plus que probablement un serveur X, un gestionnaire de fenêtres et quelques programmes. Vous pouvez imaginer cette liste de programmes, y compris le serveur X, comme une autre pile à l'intérieur de la pile utilisateur. Ce concept aidera les nouveaux utilisateurs de Linux à comprendre certaines des tâches que nous effectuerons plus tard.

1. Tuez un programme qui ne répond pas avec xkill

Si vous utilisez un bureau Linux, votre première étape devrait être une tentative d'utilisation de la fonction de commande d'exécution de votre gestionnaire de fenêtres (alt + f2 dans Ubuntu). Si vous avez de la chance, il apparaîtra plus tôt que tard.

Ensuite, vous pouvez exécuter xkill et pointez le curseur sur la fenêtre défunte et cliquez dessus.

Xkill fonctionne plus rapidement que l'icône X traditionnelle ou un clic droit sur la fenêtre de la barre des tâches et un clic sur Fermer. Xkill tue instantanément sans poser de questions.

2. Réanimez un système Linux gelé avec des consoles virtuelles (TTY)

Parfois, vous n'aurez pas cette chance, le système peut sembler complètement mort.

Cela pourrait n'être qu'une illusion. Vous souvenez-vous de la pile de programmes à l'intérieur de la pile utilisateur ? Travaillons un peu avec cette image.

Bien qu'il puisse sembler que la racine de la pile utilisateur serait X. Ce n'est pas le cas.

Le système X Window s'exécute sur une console virtuelle (CV ), également appelé ATS. Ils sont représentés sur le système de fichiers par /dev/ttyX. Linux a plusieurs VC à votre disposition. Tenter d'accéder à un autre peut vous redonner le contrôle.

Vous pouvez demander un autre VC en appuyant sur CTRL+ALT+F{1,6} depuis un environnement GUI ou ALT+F{1,6} d'un autre VC. La frappe ci-dessus vous donne accès aux VC 1 à 6. L'interface graphique fonctionne sur VC 7+.

Lorsqu'il s'agit d'un système instable, même demander un changement de VC peut prendre un peu de temps, alors soyez un peu patient.

Si votre tentative de changement de console virtuelle réussit, vous serez invité à entrer votre utilisateur et votre mot de passe. Vous aurez alors une console en mode texte. Votre système devrait retrouver une certaine stabilité ici, en partie parce que la console virtuelle où X et tout le reste s'exécutent n'est plus une priorité.

Une fois connecté, vous avez quelques options.

  • Vous pouvez tenter de tuer un programme obsolète avec le kill ou killall commande.
  • Vous pouvez tuer le gestionnaire de fenêtres, le serveur X ou le gestionnaire de connexion. Cela tuera tous les processus enfants et, si tout se passe bien, votre gestionnaire de connexion redémarrera en vous présentant votre écran de connexion graphique.

3. Quand tout le reste échoue, parlez avec le noyau en utilisant SysReq

Parfois, même le passage à un ATS ne fonctionne pas. Tout le système est mort. N'abandonnez pas encore, encore une fois, plus que probablement une illusion. Linux contient une fonctionnalité supplémentaire pour des situations comme celle-ci.

S'il est compilé dans le noyau et activé dans un fichier, Linux vous permet d'envoyer des requêtes prédéfinies directement au noyau. Ceci est utile dans une situation où toute la pile d'utilisateurs est morte. Elle est connue sous le nom de clé Magic SysRq . Compilé et activé par défaut dans la plupart des distributions, seul un Kernel Panic devrait pouvoir empêcher cela de fonctionner.

Pour confirmer que l'option a été définie lors de la compilation du noyau, vous pouvez essayer de localiser le fichier de configuration de votre noyau actuel dans /boot. Recherchez l'option CONFIG_MAGIC_SYSRQ. Comme mentionné précédemment, il est compilé et activé dans la plupart des distributions. Pour confirmer qu'il est activé, exécutez ce qui suit :

sysctl kernel.sysrq

Sur les systèmes plus anciens, vous aviez 2 options :0 et 1. C'était soit OFF, soit ON. Sur les plus récents, le contrôle des commandes activées est plus précis.

Toute valeur supérieure à 1 signifie que certaines commandes sont activées. Plus de détails peuvent être trouvés ici.

Pour définir temporairement une valeur différente, exécutez la commande suivante :

sudo sysctl -w kernel.sysrq=value

Pour modifier cette valeur de manière permanente, modifiez /etc/sysctl.conf . Recherchez kernel.sysrq et définissez la valeur souhaitée.

Le moyen le plus simple de voir si cela fonctionne est d'essayer. Je recommande également de tester et d'apprendre un ensemble de frappes pendant que le système est stable. Lorsque vous exécutez un appel SysRq, le noyau tente de répondre. Cette réponse ne peut être vue que si vous êtes dans une console virtuelle 1 à 6. Si le focus ne peut pas être éloigné de X, vous ne verrez pas les réponses. Cela ne signifie pas qu'il ne fonctionne pas.

De nombreuses commandes peuvent être envoyées. La liste complète peut être consultée ici. Je recommande de mémoriser les éléments suivants :

Clés Description
Alt + SysRq + r Sortie le clavier du mode brut, retirant le contrôle à X
Alt + SysRq + e Envoyer SigTerm à tous les processus, leur donnant une chance de s'arrêter normalement
Alt + SysRq + i Envoyer SigKill à tous les processus
Alt + SysRq + k Tuer tous les processus dans la console virtuelle actuelle
Alt + SysRq + s Synchroniser tous les systèmes de fichiers montés, en vidant toutes les données sur le disque
Alt + SysRq + u Remonter tous les systèmes de fichiers en lecture seule
Alt + SysRq + b Redémarrer le système instantanément, ne se synchronise pas ou ne se démonte pas
Alt + SysRq + o Système d'arrêt

Cette courte liste de commandes vous offre un nouvel outil puissant lorsque vous traitez avec un système instable. Lors de l'envoi de la requête, si vous ne parvenez pas à voir les réponses du noyau, accordez quelques secondes entre les commandes. Faites attention au voyant du disque dur lorsque vous demandez l'utilisation du disque dur.

Il y a 2 séquences qui méritent d'être rappelées.

Alt + SysRq + r e k

Cette séquence est bonne pour redémarrer un serveur X qui ne répond pas. Vous sortez d'abord le clavier du mode brut avec Alt + SysRq + r . Vous demandez alors d'envoyer un SIGTERM à tous les processus avec Alt + SysRq + e . Le serveur X peut redémarrer avec cette requête. Si c'est le cas, vous avez sauvé votre système. Sinon, passez à la troisième requête, Alt + SysRq + k . Qui enverra SIGKILL à tous les processus de la console virtuelle actuelle.

Si votre système ne répond toujours pas après la séquence ci-dessus, vous devez passer à la séquence suivante.

Alt + SysRq + r e i s u b

Cette dernière commande lancera un redémarrage d'urgence.

  • r  :Sortir le clavier du mode brut
  • e :Envoie SIGTERM à tous les processus
  • je :Envoie SIGKILL à tous les processus
  • s  :Synchroniser tous les systèmes de fichiers montés
  • u :Remontage d'urgence en lecture seule
  • b :Redémarrez instantanément le système

Vous êtes maintenant équipé du meilleur outil contre un système qui ne répond pas que je connaisse. Vous pouvez suivre cette vidéo de ma chaîne YouTube pour une démonstration.

J'espère que vous avez appris quelque chose de nouveau sur la gestion d'un système Linux gelé avec cet article. J'aimerais connaître votre avis à ce sujet. Veuillez utiliser la section des commentaires et partager vos réflexions.


Linux
  1. Surveillez votre système Linux dans votre terminal avec procps-ng

  2. Analyser le noyau Linux avec ftrace

  3. Améliorez les performances du système Linux avec noatime

  4. Appel système Linux le plus rapide

  5. Les différents noyaux Linux/Unix sont-ils interchangeables ?

Pen test avec les outils de sécurité Linux

10 façons de démarrer avec Linux

Commande de disponibilité Linux avec exemples

Premiers pas avec le système d'exploitation Linux

Linux est-il un système d'exploitation ou un noyau ?

5 façons de vérifier les informations sur le processeur sous Linux