LINUX.ORG.RU

Запуск X сервера

 , , ,


0

1

Всем привет!

Собираю себе дистрибутив через manjaro-tools. Проблема с запуском live-cd (до процесса установки собранного дистрибутив еще не дошел). Загрузка доходит до lightdm. Ввожу пароль - lightdm завершается и запускается заново. Я же ожидал запуск lxsession, который уже загрузит openbox и остальное окружение.

В lightdm настройки дефолтные. Изменил только xsession_wrapper на запуск /etc/X11/xsession.

Пытался разобраться уже и так, и сяк. Переходил на другой tty и запускал lxsession сам - запуск прерывается ошибкой «unable to init server: connection refused», а затем ошибка от gtk «cannot open display:». Делаю export DISPLAY=:0 - ситуация не меняется, и запуск не происходит.

Делаю xhost +, который мне пишет «Invalid MIT-MAGIC-COOKIE-1 keyxhost: unable to open display :0».

Использование startx запускает иксы, запускает lxsession (это в /etc/X11/xinit/xinitrc написано). Не знаю, стартует ли он openbox, но появляется окно lxrandr (скорее всего в атозапуске стоит). Курсора нет, но хоть запустилось.

Удаляю ~/.Xauthority. После чего xhost + выдает уже «No protocol suite, unable to open display :0».

В общем, так и сижу. Помогите разобраться с ситуацией. Не могу понять логику, как оно работает.

Вы творите какую-то дичь. startx — это самодостаточный скрипт. Он и X-сервер запускает, и куку создаёт (в .Xauthority), и X-клиента (VM или DE) запускает. А всякое типа lxsession расчитано на запуск при запущенном X-сервере.

У lightdm бывает лог/debug, можно понять, что он делает (пытается сделать). Скорее всего он старутет ваш /etc/X11/xsession (не знаю что это за файл), но из него что-то не запускается, скрипт завершается и lightdm считает, что сессия завершилась и снова запрашивает пароль.

mky ★★★★★ ()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

Я думал, что lxsession запускает иксы. Или хотя бы это делает lightdm. В общем, спасибо за то, что направили мои мысли в нужное русло. Мне важно было понять именно логику, которую я упускаю. Буду рыть дальше, но в другом направлении.

А xsession - это то же самое, что и xinitrc, только запускаемый различными DM. Это «исторический» файл, который запускал xdm. В современных DM запускаются свои «xsession» аналоги, но я решил не забывать про старый файл. Вдруг понадобится. Он у меня сейчас ничего не запускает, а просто некоторые переменные окружения назначает.

Если Вас не затруднит, то можете ответить еще на пару вопросов, пожалуйста? Первый - адекватно ли запускать иксы не через startx? Если я буду делать в своем xsession? Если нет, то каким образом это сделать грамотно? Второй - как работает lightdm? Это тоже x-клиент? Или он запускается в обход иксов?

demysteriismundi ()
Ответ на: комментарий от demysteriismundi

Вы уверены, что это ″/etc/X11/xsession″, а не ″/etc/X11/Xsession″?

X-ы можно запускать не через startx, но не в xsession. Они уже должны быть запущены к моменту xsession.

lightdm, как и другие DM (display manager) это X-клиент, но особый. В случае работы с локальным X-сервером, DM его обычно сам запускает, файл с кукой для доступа (как бы Xauthority) недоступен обычному пользователю, поэтому xhost и прочие X-клиенты не могут подлкючится к этому X-серверу. После ввода пароля кука предоставляется пользователю...

Но лучше ничему не верить, а всё проверять. Пока lightdm запрашивает пароль, переключаетесь на текстовую консоль, залогинитесь, посмотрите список процессов. Там будет видно, есть там X-server, его PID. А по выводу ″ss -x -p″ можно понять, какие процессы подключены к сокетам X-server'а. https://unix.stackexchange.com/questions/16300/whos-got-the-other-end-of-this... Потом в рабочей системе можно ввести пароль в графике, получить графический сеанс и опять посмотреть список процессов, сравнить PID X-сервера с тем, что был в момент запроса пароля...

mky ★★★★★ ()