gnome-session не запускается на удалённом X-сервере

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

Я перепостиваю Проблему с запуском Gnome сессии на удалённом X сервере здесь, потому что я считаю, что это вопрос по Gnome, а не только по Ubuntu.

У меня есть хост на Ubuntu, к которому я подключаюсь через ssh -Y. Клиентом служит мой ноутбук с macOS, на котором установлен XQuartz. Я могу запускать xclock или другие приложения X с хоста и видеть их на своём ноутбуке. Что я не могу запустить, так это gnome-session, который, насколько я понимаю, должен быть тем самым окружением, которое появляется, когда я вхожу в систему с локальной консоли. DISPLAY правильно настроен, но, похоже, игнорируется.

Передача --display="$DISPLAY" gnome-session даёт:

** (gnome-session-binary:5943): WARNING **: Неизвестная опция --display=localhost:10.0

Действительно, в моем man-странице для gnome-session не упоминается –display, хотя в man-страницах вокруг интернета он есть. Так что, я предполагаю, он был удалён в какой-то момент, есть ли у меня всё ещё возможность это сделать?

Я также обнаружил, что другие приложения gnome (например, gnome-software) имеют опцию --display, но они её игнорируют, и приложение запускается на консольном рабочем столе, а не на моем ноутбуке.

Я также обнаружил, что другие приложения gnome (например, gnome-software) имеют опцию –display, но они её игнорируют, и приложение запускается на консольном рабочем столе, а не на моем ноутбуке.

Предполагаю, что вы также запускаете Gnome 3 на сервере, а не только по SSH? Я предполагаю, что он работает как сеанс Wayland. Приложения Gnome могут использовать WAYLAND_DISPLAY вместо DISPLAY. Проверьте XDG_SESSION_TYPE. Если он установлен в wayland, приложения Gnome будут использовать Wayland-дисплей вместо вашего SSH-дисплея. Попробуйте запустить их с XDG_SESSION_TYPE=x11.

Действительно, в моем man-странице для gnome-session не упоминается –display, хотя в man-страницах вокруг интернета он есть. Так что, я предполагаю, он был удалён в какой-то момент, есть ли у меня всё ещё возможность это сделать?

gnome-session должен учитывать DISPLAY, вам не нужна --display. Однако у gnome-shell есть опция --display.

Что я не могу запустить, так это gnome-session

Я обнаружил, что gnome-session и libmutter часто вызывают ошибки сегментации, если не работают с аппаратным обеспечением дисплея. Проверьте dmesg на вашем сервере.

Может быть, вы можете запустить env XDG_SESSION_TYPE=x11 gnome-session, но я подозреваю, что это тоже приведёт к ошибке сегментации. Также вы можете попробовать gnome-shell вместо gnome-session.

Рекомендую использовать другое и более лёгкое окружение рабочего стола для SSH, например, lxde (lxsession) или xfce (startxfce4), или просто оконный менеджер, такой как openbox (openbox --sm-disable).

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

Ваш вопрос о том, почему gnome-session не запускается на удаленном X-сервере, является актуальным для многих пользователей, подключающихся к удаленным машинам при помощи SSH. Давайте рассмотрим, как можно решить эту проблему.

1. Обновите переменные окружения

Прежде всего, убедитесь, что переменная DISPLAY установлена правильно. Можно использовать команду:

echo $DISPLAY

Если она установлена на что-то вроде localhost:10.0, то в большинстве случаев это правильно. Однако важно также проверить, не использует ли ваша настраиваемая среда Wayland. Это можно сделать с помощью:

echo $XDG_SESSION_TYPE

Если вывод показывает wayland, то приложения GNOME будут использовать WAYLAND_DISPLAY. В таком случае, попробуйте запустить сессию X11:

env XDG_SESSION_TYPE=x11 gnome-session

2. Убедитесь, что GNOME работает с X11

Если у вас действительно Wayland-сессия, может помочь следующее решение. Установите переменную XDG_SESSION_TYPE в x11:

export XDG_SESSION_TYPE=x11

3. Проверьте наличие ошибок

Если gnome-session продолжает вызывать ошибки или завершаться с ошибкой, проверьте вывод dmesg на наличие сообщений об ошибках или сбоев, связанных с gnome-session или libmutter. Это может дать дополнительные подсказки о том, что именно идет не так.

dmesg | grep -i gnome

4. Попробуйте альтернативные среды рабочего стола

Если GNOME по-прежнему не удается запустить через удаленный X-сервер, рассмотрите возможность использования более легковесной среды рабочего стола, такой как LXDE или XFCE. Это может быть более стабильным вариантом для работы через SSH. Для LXDE выполните:

lxsession

Для XFCE:

startxfce4

5. Примеры запусков

Воспользуйтесь следующими командами для запуска отдельных приложений GNOME с помощью X11:

DISPLAY=:10 gnome-terminal

или

env DISPLAY=:10 gnome-software

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

6. Установка дополнительных пакетов

Если проблема не решается, убедитесь, что все необходимые пакеты установлены на сервере. Убедитесь, что у вас есть установленные следующие пакеты:

sudo apt install gnome-session gnome-shell

Заключение

Если, следуя этим шагам, вы все еще сталкиваетесь с проблемами, возможно, стоит рассмотреть использование других методов доступа к удаленному серверу, таких как VNC или RDP, которые обеспечивают полноценный графический интерфейс. Каждый из этих подходов имеет свои плюсы и минусы, поэтому выбирайте способы, которые лучше всего соответствуют вашим требованиям.

Если возникнут дополнительные вопросы или нужна помощь, пожалуйста, дайте знать!

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

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