Нещодавно я розкопував інформацію про процеси в GNU / Linux і зіткнувся з сумнозвісною форк-бомбою:
:(){ : | :& }; :
Теоретично, він повинен дублювати себе нескінченно, поки у системи не вистачить ресурсів ...
Однак я спробував тестувати як на CLI Debian, так і на дистрибутив монетного двору GUI , і, схоже, це не впливає на систему. Так, створено багато процесів, і через деякий час я читаю в консольних повідомленнях на зразок:
bash: fork: ресурс тимчасово недоступний
bash: fork: retry: Ніяких дочірніх процесів
Але через деякий час всі процеси просто вбиваються і все повертається до нормального. Я читав, що ulimit встановлює максимальну кількість процесу на кожного користувача, але я, здається, не міг підняти його дійсно далеко.
Які системи захисту від вилки-бомби? Чому він не повторюється, поки все не застигне або принаймні сильно відстає? Чи є спосіб реально розбити систему з вилковою бомбою?
:(){ :& :; }; :
замість цього ти запустиш? Чи всі вони в кінці кінців вбиваються? Про що :(){ while :& do :& done; }; :
?