Confuso por este script de fork fork [duplicado]

3

Há um script de shell flutuando na Internet que se parece com isso:

:(){ :|: & };:

Basicamente, este script de shell cria uma função que chama a si mesma, levando à recursão infinita. Aparentemente, isso é uma bomba de garfo e vai continuar até que ele consome recursos e trava seu sistema.

Minha pergunta é: esse script não causaria um estouro de pilha e faria com que o shell se segfasse antes de consumir todos os recursos do sistema? Como isso funciona exatamente?

    
por user628544 07.09.2016 / 14:58

1 resposta

0

Nas versões modernas do Linux, se você executar esse código em um bash, ele não irá travar seu sistema. O que isso faz é interromper a chamada do sistema 'fork'. O '&' a partir de sua função significa que ele é executado em segundo plano, e quando ele tenta fazer isso, ele usa a chamada do sistema fork (). Ele irá bifurcar tantas vezes que a bifurcação estará indisponível, então você não poderá iniciar novas aplicações, porque isso também precisa de um garfo, mas as aplicações e você já estão rodando serão ótimas.

    
por 09.09.2016 / 03:52