При чем тут труба | сделать в этом bash сценарий? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь понять эту так называемую «Вилочную бомбу», написанную в bash. (для получения дополнительной информации см. https://en.wikipedia.org/wiki/Fork_bomb)

Насколько я понимаю, амперсанд вызвал разветвление функции Bomb и ее запуск в фоновом режиме. Это правильно?

Предполагая, что так ... мой вопрос тогда, что означает Pipe | do?

Является ли труба в этом случае условием ИЛИ, или это то же самое, что "передача" команды от одного к другому, как это делается в командной строке? Почему я хочу передать второй вызов функции Bomb обратно на первый вызов функции Bomb?

Может кто-нибудь объяснить, почему необходим канал?

bomb(){
  bomb | bomb & 
}
bomb

1 Ответ

2 голосов
/ 20 февраля 2020

Каждый вызов функции bomb запускает 2 новых экземпляра bommb в фоновом режиме. Из-за знака трубы вывод (здесь пусто) первой бомбы перенаправляется на вторую.

Из-за фонового выполнения каждая новая бомба создает 2 новые бомбы. Это делается бесконечно, так что в любое время достигается количество доступных процессов. В зависимости от доступных ресурсов и прав, система некоторое время работает очень медленно или дает сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...