Управление TTY и виртуальными консолями в Ubuntu через chvt

Введение

Зависание графической оболочки, сбои дисплейного менеджера или необходимость выполнения изолированных сервисных процедур в чистой текстовой среде — стандартные ситуации в практике системного инженера. В подобных случаях ключевым инструментом восстановления контроля над хостом становится прямое переключение между виртуальными консолями (Virtual Terminal). В данном руководстве подробно разобрано управление сессиями TTY с помощью системной утилиты chvt, а также применение сопутствующих средств администрирования текстовых экранов в Ubuntu.

Диагностика текущей сессии и определение активного терминала

Утилита tty выводит имя файла устройства терминала, на который направлен текущий стандартный поток ввода.
Сообщение not a tty в выводе свидетельствует о том, что команда выполняется в неинтерактивной среде (например, в автоматизированном пайплайне или скрипте), где отсутствует прямое подключение к виртуальной консоли (tty) или псевдотерминалу (pts).

Проверка типа текущего терминала с помощью tty

Команда who предназначена для инспекции активных сеансов и отображения учетных записей пользователей, зарегистрированных в системе вместе с их терминальными линиями.
Отсутствие строк в ответе указывает на то, что в настоящий момент интерактивные сеансы в операционной системе не зарегистрированы.

Просмотр активных пользовательских сессий через who

Для считывания индекса текущей консоли используется инструмент fgconsole. Проверяем его доступность в системе и при необходимости выполняем инсталляцию пакета kbd.

Проверка доступности и установка утилиты fgconsole

Инструмент fgconsole возвращает порядковый номер виртуального терминала, который выводится на физический монитор в текущий момент времени.
Значение 1 подтверждает, что активным дисплейным экраном выступает первая консоль (tty1).

Определение номера активного терминала с помощью fgconsole

Навигация между консолями TTY с помощью утилиты chvt

Перед манипуляциями с экранами удостоверимся в наличии бинарного файла chvt и при необходимости инсталлируем пакет kbd.
Обнаруженный путь /usr/bin/chvt подтверждает готовность инструмента к работе в системе.

Проверка наличия исполняемого файла chvt

Команда chvt осуществляет принудительное переключение видеовывода на указанный терминал TTY.
Директива sudo chvt 1 задействует привилегии суперпользователя и переводит фокус вывода на экран первой виртуальной консоли (tty1).
При корректной отработке операция завершается без текстовых сообщений, мгновенно меняя активный экран.

Переход на терминал tty1 командой sudo chvt 1

Команда sudo chvt 2 перенаправляет текущий видеовывод на виртуальную консоль номер 2 (tty2).
В современных редакциях Ubuntu экран tty1 или tty2 обычно закрепляется за графической оболочкой (Xorg/Wayland) либо дисплейным менеджером, поэтому оперативное переключение между ними незаменимо при изоляции сбоев GUI.
«Тихий» возврат шелла подтверждает бесперебойное выполнение переключения.

Переключение на вторую виртуальную консоль sudo chvt 2

Изолированный запуск команд на выделенной консоли (openvt)

Инструмент openvt позволяет инициализировать новую программу или командный интерпретатор на свободной либо конкретно заданной виртуальной консоли.
Команда sudo openvt -c 3 -- ls -la /var/log резервирует третью консоль (tty3) и запускает на ней формирование подробного листинга каталога /var/log в фоновом режиме.
При отсутствии ошибок консоль не возвращает диагностических сообщений, штатно делегируя команду назначенному терминалу.

Запуск фоновой задачи на tty3 через sudo openvt

Для перехода к запущенному процессу и изучения результатов выполнения вызываем sudo chvt 3.
Данная команда активирует видеовыход консоли tty3, позволяя просмотреть вывод завершившейся операции.
Отсутствие служебных сообщений об ошибках свидетельствует об успешном переносе фокуса экрана.

Активация экрана tty3 через sudo chvt 3

Деаллокация неиспользуемых консолей и освобождение памяти (deallocvt)

Утилита deallocvt дерегистрирует неактивные терминалы и возвращает занятые ими структуры памяти ядру операционной системы.
Команда sudo deallocvt 3 освобождает ресурсы, которые были выделены под виртуальную консоль tty3.
Завершение команды без текстовых предупреждений свидетельствует об успешной выгрузке структур терминала из ядра.

Освобождение системных ресурсов TTY с помощью sudo deallocvt 3

Повторно запрашиваем номер текущего активного экрана через fgconsole.
Возвращенная цифра 3 демонстрирует архитектурную особенность подсистемы: выгрузка буферов консоли не влечет автоматического переключения фокуса, и текущий сеанс продолжает указывать на tty3 до явной смены экрана пользователем.

Контрольная проверка текущей консоли через fgconsole

Мы изучили комплексный подход к управлению виртуальными консолями в Ubuntu с использованием утилиты chvt, запуска процессов через openvt и очистки ядерных структур с помощью deallocvt. Владение этими инструментами позволяет быстро локализовать неисправности графической подсистемы и восстановить контроль над сервером или рабочей станцией.