Завис Ubuntu? Как переключать TTY с помощью chvt

Введение: спасаем систему без жесткой перезагрузки

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

Диагностика активных сессий и установка пакета kbd

Все базовые инструменты управления клавиатурой и виртуальными консолями объединены в дистрибутиве внутри пакета kbd. Убедимся в его наличии в системе, выполнив установку через apt-get update -qq && apt-get install -y kbd:

Установка утилит управления консолями kbd

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

Проверка текущего устройства терминала через tty

Сведения обо всех пользователях, авторизованных в операционной системе, традиционно запрашиваются через who. Пустой вывод команды подтверждает, что в данный момент открытые интерактивные сеансы входа отсутствуют:

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

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

Синтаксис и доступные флаги утилиты fgconsole можно быстро уточнить при помощи вызова fgconsole --help:

Просмотр встроенной справки fgconsole

Запуск fgconsole без дополнительных аргументов возвращает идентификатор виртуального терминала, развернутого на переднем плане. Значение 7 свидетельствует о том, что активен терминал номер 7 — в дистрибутивах Linux именно на нем чаще всего по умолчанию функционирует графический рабочий стол:

Определение номера текущей активной консоли через fgconsole

Переключение между виртуальными TTY с помощью chvt

Краткую инструкцию по параметрам запуска команды chvt получаем через штатную справку chvt --help:

Справка по вызову команды chvt

Утилита chvt переводит видеовывод на указанный виртуальный экран. Поскольку операция напрямую управляет терминальными интерфейсами, для смены фокуса требуются привилегии суперпользователя, поэтому используется sudo. Команда sudo chvt 1 моментально передает управление первому текстовому терминалу (TTY1), позволяя перейти в консоль восстановления:

Переключение фокуса на виртуальный терминал TTY1 через sudo chvt 1

Автоматизация проверки TTY при сбоях графического интерфейса

При аварийных инцидентах полезна компактная утилита экспресс-диагностики, которая наглядно подтверждает статус открытого сеанса. Создадим вспомогательный shell-скрипт с помощью команды echo -e '#!/bin/bash\necho "현재 터미널: $(tty)"\necho "콘솔 복구 준비 완료"' > /tmp/check_tty.sh:

Создание скрипта быстрой проверки статуса консоли

Назначим созданному файлу исполняемые права и сразу же протестируем его вызовом chmod +x /tmp/check_tty.sh && /tmp/check_tty.sh. Скрипт отобразит подключенное устройство терминала, подтверждая готовность к проведению системных реанимационных мер:

Назначение прав на запуск и тестирование скрипта проверки

Освоив инструмент chvt, вы получаете надежную альтернативу аварийному сбросу питания при зависании рабочего стола Ubuntu. Переход в чистую текстовую среду позволяет спокойно завершить сбойный процесс, перезапустить оконный менеджер или сохранить данные без риска повреждения файловой системы.