Открыть сервисСервис

Перезапуск терминала в Linux

Перезапуск терминала — процедура завершения и повторного запуска эмулятора терминала или перезапуска оболочки внутри уже открытого окна терминала. Термин охватывает несколько технических сценариев: перезапуск пользовательской оболочки (shell), перезапуск эмулятора терминала (например, GNOME Terminal, Konsole, xterm), а также перезапуск системного сервиса, управляющего виртуальными консолями (getty). Выбор способа зависит от того, что именно требуется восстановить: конфигурацию оболочки, работу окна терминала или системный сервис.

Перезапуск оболочки

Наиболее частая задача — перезагрузить оболочку bash после изменения конфигурационных файлов ~/.bashrc, ~/.bash_profile или /etc/profile. Способы:

  • Перезапуск через exec: команда exec bash (или exec zsh, exec fish — в зависимости от используемой оболочки) заменяет текущий процесс оболочки новым. Все открытые переменные окружения и рабочий каталог сохраняются, конфигурация перечитывается заново.
  • Запуск новой оболочки: команда bash без параметров запускает вложенную оболочку. После выхода из неё (exit или Ctrl+D) возвращается родительская оболочка с прежним состоянием.
  • Перечитывание конфигурации вручную: source ~/.bashrc или сокращённый вариант . ~/.bashrc применяет изменения без перезапуска процесса.

В оболочке zsh аналогом exec bash служит exec zsh. Для fish перезапуск выполняется командой exec fish.

Перезапуск эмулятора терминала

Если требуется перезапустить само окно терминала (например, после изменения темы, шрифта или настроек прокрутки), действуют следующим образом:

  1. Закрывают окно терминала (в GNOME Terminal, Konsole, xterm — стандартное закрытие окна).
  2. Запускают эмулятор повторно через меню приложений, панель задач или горячую клавишу (в большинстве дистрибутивов Linux — Ctrl+Alt+T).

Для запуска из командной строки других программ (например, из WM или из TTY):

``bash gnome-terminal & konsole & xterm & ``

Параметр & переводит процесс в фон, чтобы терминал не блокировался.

Перезапуск виртуальных консолей (getty)

В системах с systemd служба getty@tty1 (и аналоги для других виртуальных консолей) управляет приглашением входа в систему. Перезапуск:

``bash sudo systemctl restart getty@tty1 ``

Для перезапуска всех экземпляров:

``bash sudo systemctl restart 'getty@*' ``

Если после перезапуска консоль не отображает приглашение, проверяют статус службы командой systemctl status getty@tty1.

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

В сетевых сценариях с использованием VNC или RDP перезапуск терминального сеанса может потребовать перезапуска соответствующего сервиса:

``bash sudo systemctl restart vncserver@:1 sudo systemctl restart xrdp ``

Сброс состояния текущего терминала

Иногда «перезагрузка» подразумевает очистку экрана и сброс состояния без перезапуска процесса:

  • Очистка экрана: clear или горячая клавиша Ctrl+L.
  • Сброс терминала: команда reset (полный сброс настроек терминала, включая режимы ввода/вывода) или tput reset.
  • Сброс прокрутки: printf '\e[3J' очищает буфер прокрутки в большинстве эмуляторов.

Перезапуск терминальных multiplexers

При работе в tmux или screen перезапуск сервера multiplexера выполняется так:

tmux: ``bash tmux kill-server # завершает все сессии tmux new # создаёт новую сессию ``

screen: ``bash screen -wipe # очищает «мёртвые» сессии ``

Возможные проблемы

  • После exec bash в некоторых конфигурациях теряются переменные, заданные в родительском процессе вручную.
  • Перезапуск getty на активной виртуальной консоли приводит к завершению текущего текстового сеанса.
  • В контейнерах и системах без systemd перезапуск getty недоступен или заменён другими механизмами (например, s6, OpenRC).
  • При использовании Wayland перезапуск терминала не затрагивает композитор, в отличие от X11, где перезапуск дисплейного сервера (systemctl restart display-manager) завершает все графические сеансы.

Применение

Перезапуск оболочки обычно требуется после установки программ, добавляющих новые команды в PATH, или после изменения переменных окружения. Перезапуск эмулятора — при обновлении тем и шрифтов. Перезапуск getty — при настройке автоматического входа или изменении параметров виртуальных консолей.

Источники:

  • «The Linux Command Line» (William Shotts)
  • «How Linux Works» (Brian Ward)
  • Руководства systemd (systemd.io)
  • Справочные страницы man: bash(1), tmux(1), getty(1), reset(1)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru