3 votes

Comment puis-je me débarrasser de la bombe à fourche ?

J'ai essayé le code de la bombe à fourche :

:(){:|:&};:

et a fermé la PuTTy. Maintenant, il n'accepte pas les nouvelles connexions (attaque par déni de service).

Comment puis-je m'en remettre ?

6voto

heemayl Points 85741

Vous devrez peut-être redémarrer l'ordinateur.

En supposant que vous ayez accès à la console, vous pouvez essayer d'obtenir l'ID du groupe de processus (PGID) et le tuer avec :

kill -- -PGID

Ou utilisez SIGKILL 代わりに SIGTERM :

kill -9 -- -PGID

mais il se peut qu'il ne soit pas possible d'obtenir le PGID de manière pratique car le système peut être déjà occupé par les processus bifurqués, ce qui crée un blocage.

Ce blocage peut se produire lorsque le nombre de processus qu'un utilisateur ou un groupe peut posséder n'est pas suffisamment limité, Il est donc préférable de fixer une limite inférieure avant d'essayer quelque chose de destructeur comme une fourche-bombe.

5voto

waltinator Points 32821

Vous avez utilisé la classique "bombe à fourche" pour épuiser tous les processus de votre système, et maintenant vous ne pouvez pas faire en sorte que le système exécute un processus pour vous aider (et toutes les commandes, programmes, etc. nécessitent un processus à exécuter "dans"). Toute intervention devra venir de l'extérieur du système (par exemple, réinitialiser la VM, mettre le système sous tension, CtrlAltDelete). N'avez-vous pas compris ce que dit le code ?

:(){:|:&};:

:()  

Définir une fonction Shell, appelée " :".

   {

Commencez la définition de la fonction, qui est :

      :

Appelez la fonction " :".

       |  

Transférer la sortie de " :"

        :  

à un autre appel à " :"

         &

Fork un processus pour mettre le pipeline ( :|: ) en arrière-plan.

          } 

Fin de la définition de la fonction " :"

           ;

Fin de l'instruction Shell définissant la fonction " :".

            : 

Appelez la fonction " :" pour commencer.

Si vous exécutez un code sans le comprendre, vous acceptez les résultats de ce code.

0voto

A.B. Points 84870

Si vous ne peut pas Connectez-vous à nouveau, vous n'avez aucune chance. Vous pouvez peut-être attendre un out of memory error

Si vous peut se connecter, essayez la commande suivante

pkill -f :

Et comme vous l'avez dit dans vos commentaires

Je l'exécute dans une boîte virtuelle

Réinitialisez la machine via VirtualBox.

0voto

realkstrawn93 Points 161

Selon este il devrait en théorie être possible d'utiliser Alt+SysRq+f pour se débarrasser des bombes à fourche - bien que, encore une fois, cela ne soit probablement possible que si le noyau est capable d'allouer suffisamment de mémoire pour le tuer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X