xargs -L 10 sh -c 'printf "%s\n" "$@"; sleep 10' sh < test_file
xargs
с -L
займет 10 строк за один раз и передаст их команде sh -c
. Там первый аргумент используется как имя программы, мы поместим фиктивное имя sh
. Затем эти 10 строк будут доступны для sh
как "$@", и мы сможем делать с ними все, что захотим. Здесь мы просто печатаем их. Затем мы засыпаем
на 10 секунд. После этого xargs
должны пройти следующие 10 траншей, и этот цикл повторяется до тех пор, пока не закончатся лжи в test_file. Покопавшись в логах еще немного, я увидел сообщение kernel: random: crng init done
, и вскоре после этого службы запустились. Оказывается, это ошибка ядра Linux, появившаяся в версии 4.16, согласно этому ответу на вопрос, касающийся того же сообщения .
Учитывая, что urandom
был заблокирован, хотя это и не должно было происходить, входа в систему через виртуальную консоль оказалось достаточно, чтобы получить дополнительную энтропию и продолжить запуск служб.
Я установил haveged
и проблема исчезла.