Как включить или отключить GUI в Ubuntu

Вопрос или проблема

Если я хотел бы воспроизвести Ubuntu Server и не запускать GUI, что мне нужно сделать, чтобы это произошло? Уз запустив htop/top из tty-сессии, я вижу, что как gnome, так и xorg все еще работают и потребляют значительное количество памяти (я использую VirtualBox, и у меня выделено 1024МБ для Ubuntu). Я бы предпочел иметь возможность отключать/останавливать gnome и Xorg, когда захочу, чтобы освободить ресурсы. Не вижу смысла переключаться на tty из Xorg и оставлять процессы работающими. Однако мне бы хотелось иметь возможность повторно включать/запускать необходимые файлы при выходе из tty. Я не хочу, чтобы что-то было отключено навсегда, хотя иметь такую возможность было бы полезно.

Есть ли какая-то помощь?
Спасибо

Вы можете использовать systemctl для “изоляции” целей, что до некоторой степени похоже на переключение уровней выполнения. Целями, представляющими интерес, здесь являются

  • graphical.target

  • multi-user.target

Сбивает с толку то, что graphical.target является целевым объектом по умолчанию как в Ubuntu desktop, так и в серверной версии, но так как в серверной версии не установлен диспетчер дисплея, он по сути идентичен multi-user.target.

Переключение во время работы Ubuntu

Переключение в “текстовый режим” (вы можете просто запустить это в, например, gnome-terminal):

sudo systemctl isolate multi-user.target

Переключение в “графический режим”:

sudo systemctl isolate graphical.target

Установить целевой объект для загрузки

Вы можете установить целевой объект по умолчанию, который будет достигнут после загрузки (сохраняется после перезагрузки), например:

sudo systemctl set-default multi-user.target

Вы также можете установить целевой объект с помощью параметра ядра systemd.unit, например:

systemd.unit=multi-user.target

Параметр ядра имеет приоритет над целевым объектом по умолчанию.

Это можно использовать для загрузки к конкретной цели один раз, отредактировав запись загрузки grub перед загрузкой. Или вы можете добавить несколько записей загрузки для разных целей.

Вы можете использовать systemctl (системный и сервисный менеджер systemd) для контроля вашего диспетчера дисплея. В случае Ubuntu это GDM – Gnome Display Manager, SDDM и LightDM – другие распространенные диспетчеры.

Чтобы проверить статус из командной строки:

sudo systemctl status gdm

Чтобы остановить:

sudo systemctl stop gdm

Чтобы запустить:

sudo systemctl start gdm

Чтобы отключить (предотвратить загрузку при старте системы):

sudo systemctl disable gdm

Чтобы включить (загрузка при старте системы):

sudo systemctl enable gdm

Другой способ достижения этого – отредактировать строку, начинающуюся с команды linux в вашей записи загрузки grub и добавить в конец число 3 для загрузки в уровень выполнения 3, который не будет запускать x-server по умолчанию.

Это должно выглядеть как-то так:

 linux  /boot/vmlinuz-5.3.0-46-generic root=UUID=SOME_UUID ro quiet splash 3

Это имеет такой же результат, как указали другие, но вы можете изменить его еще до загрузки системы.

В меню grub нажмите кнопку e на записи меню ubuntu и после добавления 3 в конец строки просто нажмите Ctrl+x для загрузки. Обратите внимание, что это не сохранит эту конфигурацию для вас. Если вы хотите сохранить это, вы должны отредактировать файл /boot/grub/grub.cfg. (И это сценарий, если вы не можете получить меню grub на экране загрузки, потому что, например, таймаут grub был установлен в ноль.)

А другой вариант для вас – установить Ubuntu server, который вообще не имеет GUI, если только у вас нет причин придерживаться десктопной версии. (например, в десктопной версии по умолчанию установлено больше инструментов, таких как g++.)

Ответ или решение

Для IT-эксперта управление графическим интерфейсом (GUI) в Ubuntu — это не только вопрос удобства, но и разумного распределения системных ресурсов. Когда речь идет об оптимизации работы хостинга или виртуальных машин с ограниченными ресурсами, такими как 1024 МБ оперативной памяти, отключение GUI может значительно улучшить производительность системы. Давайте рассмотрим, как можно включать и отключать графический интерфейс в Ubuntu, сохраняя при этом возможность легкого переключения между режимами.

Теория

Ubuntu предлагает гибкую систему управления режимами работы системы посредством использования systemctl, который является интерфейсом к systemd — системе init по умолчанию в Ubuntu. С systemctl мы можем управлять так называемыми "целями" (targets), которые аналогичны старым уровням запуска (runlevels) в SysVinit. Основными функциями, которые мы будем использовать, являются graphical.target и multi-user.target.

  • graphical.target — обеспечивает запуск системы с графическим интерфейсом.
  • multi-user.target — запускает систему в многопользовательском текстовом режиме без GUI, что по сути является аналогом старого уровня запуска 3.

Эти две цели позволяют нам быстро переключаться между режимами с и без графического интерфейса.

Пример

Для более детального понимания, давайте рассмотрим командный подход к управлению этими режимами:

Переключение режимов

Чтобы отключить графический интерфейс и переключиться в текстовый режим, используйте следующую команду:

sudo systemctl isolate multi-user.target

Эта команда остановит графический интерфейс и запустит систему в режиме "multi-user.target", тем самым освобождая ресурсы, занятые Xorg и Gnome.

Чтобы включить графический интерфейс, выполните:

sudo systemctl isolate graphical.target

Эта команда заново инициализирует графический интерфейс, делая систему снова доступной с GUI.

Настройка режима загрузки по умолчанию

Если вы хотите, чтобы система по умолчанию загружалась в текстовый режим, выполните:

sudo systemctl set-default multi-user.target

Эта команда установит "multi-user.target" как цель по умолчанию при загрузке системы.

При необходимости, чтобы системы полнофункционально поддерживала GUI после перезагрузки системы, выполните:

sudo systemctl set-default graphical.target

Управление дисплейным менеджером

Ubuntu обычно использует Gnome Display Manager (GDM) как менеджер отображения. Для управления этим сервисом можно использовать следующие команды:

  • Проверить статус:

    sudo systemctl status gdm
  • Остановить GDM:

    sudo systemctl stop gdm
  • Запустить GDM:

    sudo systemctl start gdm
  • Отключить автозапуск GDM:

    sudo systemctl disable gdm
  • Включить автозапуск GDM:

    sudo systemctl enable gdm

Этот набор команд позволяет гибко управлять автозапуском и работой GDM.

Практическое применение

Разработчики и системные администраторы могут использовать эти команды для настройки серверов или виртуальных машин, где GUI не является критически важным. В тех случаях, когда требуется минимальное использование ресурсов, отключение GUI при помощи systemctl isolate multi-user.target позволит сократить нагрузку на ресурсы и улучшить производительность приложений, занимающих много памяти, таких как серверные приложения или базы данных.

Если ситуация требует наличия интерфейса, чтобы быстро вернуть графическую среду, достаточно использовать соответствующую команду для активации graphical.target.

Эта гибкость особенно полезна в условиях ограниченных вычислительных ресурсов или в случае необходимости обслуживания сервисов, для которых недосягаемость GUI может стать временной мерой для анализа или диагностики проблем.

Таким образом, владея знаниями о системных внутренних процессах управления Ubuntu, вы можете оптимально распределять ресурсы вашей системы и уверенно управлять GUI в зависимости от ваших текущих требований и задач.

Оцените материал
Добавить комментарий

Капча загружается...