Isso é chamado de bomba garfo .
Por que esse comando trava o Linux?
:(){ :|:& };:
Isso é chamado de bomba garfo .
O comando define uma função chamada :
, que, quando chamada, gera duas cópias de si mesmo em segundo plano e sai. Essas duas cópias fazem o mesmo, resultando em uma enorme quantidade de processos em apenas um segundo, continuando indefinidamente.
Abaixo está exatamente a função mesmo , mas com um nome mais legível:
foo() {
foo | foo &
}
foo
Ele bifurca processos ao fundo infinitamente. Depois de um tempo, há muitos processos, cada um com uma pequena quantidade de recursos do sistema.
Tecnicamente falando, o sistema não travou. Um travamento do sistema produz uma saída com erros. Não enforcou. Isso implicaria que o sistema está fazendo alguma coisa e não retornou. No caso específico, está funcionando corretamente. Leva muito tempo para responder, porque a realização de um computador tem recursos finitos. Portanto, processos infinitos e recursos finitos resultam em tempo infinito para responder.
Tags linux