При редком стечении обстоятельств мы попали в ситуацию, когда chvt зависает между VT_ACTIVATE и VT_WAITACTIVE. Выяснилось что это гонка между X-ами и chvt. Так как мы chvt делаем через ssh в процессе загрузки машины. Если случается так, что chvt переключает консоль и сразу за этим это же делают X-ы, то chvt никогда не заканчивает свою работу, дожидаясь появления нужной консоли. Очень хотелось бы, чтобы время ожидания консоли было управляемым и если консоль не появляется, chvt вернул бы ошибку для дальнейшей обработки ее в скрипте.
Почему вы не хотите использовать timeout(1) ?
Можно и timeout, надо попробовать поможет ли он в нашем случае.
(Ответ для Anton Farygin на комментарий #2) > Можно и timeout, надо попробовать поможет ли он в нашем случае. Предлагаемая опция будет эквивалентна: timeout <DELAY> chvt ... Недавно как раз в области VT_WAITACTIVE в ядре была найдена бага, которая затрагивает утилиты kbd.
kbd-2.4.0