Вопрос в вопросе (из вики Debian ):
Должен ли я использовать sid на моем рабочем столе?
Если вы думаете, что справитесь со сломанной системой Debian, конечно. Знаете ли вы, что делать, если libpam0g ломается, предотвращая все входы в систему? Знаете ли вы, что делать, если grep ломается, вызывая зависание процесса загрузки? Эти вещи произошли. Они повторится снова.
У меня вопрос, как сломанный grep
вызывает зависание процесса загрузки навсегда?
grep
этоgrep -r pattern . > pattern.grep
. Поскольку оболочка создает выходной файл перед вызовомgrep
,grep
команда выполняет поиск выходного файла, который увеличивается до заполнения диска. Я понятия не имею, связано ли это с чем-то, что может привести к зависанию процесса загрузки.Ответы:
Обычно загрузочные скрипты вызывают
grep
в определенный момент. Еслиgrep
зависает из-за ошибки, первый из этих загрузочных скриптов, который вызывает,grep
будет зависать. Или, чаще всего, если один из этих сценариев сломан и вызываетgrep
без предоставления аргумента имени файла и без перенаправления ввода,grep
будет сидеть без дела вечно, ожидая ввода с консоли (это не так уж плохо, если вы находитесь перед консолью и можете типCtrl+D
). Если сценарий сломан и вызываетgrep
канал или устройство, на котором никто не пишет ... очень плохо.источник
Что ж, очевидным способом было бы: «grep зависает навсегда, поэтому то, что использует grep, зависает навсегда, и что-то в процессе загрузки делает это».
Текст, скорее всего, будет иллюстративным, а не буквальным примером проблем, но это не невозможно.
Чтобы действительно понять, начните читать с
/etc/init.d/rc
и/etc/init.d/rcS
- это сценарии оболочки, которые запускают все биты, которые поднимают вашу систему.источник