LINUX.ORG.RU

Неактивный x сервер не запускает программы.

 


0

2

Запущен у меня через lightdm xfce4.

Во второй консоли под другим пользователем ввожу startx и запускаю вторые иксы с xfce4. Там открываю терминал и ввожу sleep 10; firefox. Переключаюсь в другие иксы. И о чудо, firefox не запустился и висит в ожидании. Запускается он только тогда, когда я возращаюсь в иксы, где выполнен sleep 10; firefox.

Второй прикол: после перехода на другие иксы, в старых иксах встает на паузу ютуб. Чорт подери, как он это понимает?

★★★★★

Последнее исправление: steemandlinux (всего исправлений: 1)

Пробовал:

xhost +
DISPLAY=:2 firefox

Эффект тот же самый.

steemandlinux ★★★★★
() автор топика

Что-то мне подсказывает надо server layout ковырять.

steemandlinux ★★★★★
() автор топика

Когда еще был жив мой жабир, я тебе про прохожую фигню рассказывал.

Суть в том, что отображение возможно только на активном VT (архитектурная фича иксов, насколько я понял). Если поднять N дисплеев иксов и на каждую прикрутить по x11vnc, то картинку ты увидишь только на одном - который будет на активном VT.

А что и как делает файрфокс, думаю, уже его заморочки.

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

Отлично:(, теперь придется как-то заставить работать xfwm на Xdummy, потому что libxdo не работает без wm и вдобавок не дружит с openbox.

steemandlinux ★★★★★
() автор топика
Ответ на: комментарий от steemandlinux

Xdummy не спасает. Это тоже была моя первая мысль (я хотел пускать иксы на xdummy и в фреймбуферной консоли показывать fbvnc, цеплявшийся к x11vnc@xdummy, но консоль-то занимает другой VT, потому в fbvnc я видел только ч0рный квадрат.

В конце концов плюнул и написал небольшой баш-костыль для детекта первой видеокарты и генерации xorg.conf, чтобы графика всегда грузилась корректно. Но у меня задача была именно в корректности.

pekmop1024 ★★★★★
()

Есть одно «но»: X-сервер программы не запускает в принципе. Они запускаются отдельно от него, а потом коннектятся через xlib/xcb. Возможно, что до стадии подключения через иксовые библиотеки дело дошло, но X-сервер (в данном случае X.org) на неактивном терминале не хочет продолжать работу с программой до тех пор, пока терминал не станет активным. Судя по всему, тебе нужна активная сессия, а значит тебе следует попробовать примочки для поддержания сессии типа Xpra (как многие сравнивают, это как screen или tmux, но для иксов).

Quasar ★★★★★
()

Не знаю про что вы говорите, но у меня к примеру есть скрипт для запуска одной старой игры на отдельном xorg-server.

Скрипт такого содержания:

#!/bin/sh
export LD_PRELOAD="/usr/lib32/pulseaudio/libpulsedsp.so" #:/usr/lib32/pulseaudio/libpulsecommon-11.1.so"
xinit /home/username/gorky18/gorky18 -- :2

Находясь на одном xorg-server я запускаю в терминале этот скрипт и у меня в отдельном xorg-server запускается игра.

При чём она работает, а не ждёт пока я переключусь на второй xorg-server, т.к. во-первых я слышу в наушниках звук проигрываемой заставки.

anonymous
()

https://dvdhrm.wordpress.com/2013/08/24/how-vt-switching-works/

X-сервер, запускаемый на виртуальной консоли, подписывается на события активации-деактивации своей виртуальной консоли. Когда он получает сигнал о деактивации, он «отпускает» видеоадаптер и приостанавливает обслуживание клиентов, когда получает сигнал об активации, захватывает видеоадаптер и возобновляет обслуживание клиентов.

Хочешь два сервера одновременно — не запускай их на разных виртуальных консолях. Запускай Xephyr.

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

Запускай Xephyr.

Он очень старый, расширений нема.

steemandlinux ★★★★★
() автор топика
Ответ на: комментарий от steemandlinux

Почему бы тогда не стартануть X-сервер, а потом - игру? Клиенту нужно гарантированно подключиться к серверу безо всяких неопределённостей. Сразу все неоднозначности уходят. Можешь тогда саму задачу описать? А то сдаётся мне, что решать её надо иначе.

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

Дело совсем не в иксах как таковых. Вопрос о конкретной реализации.

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

Почему бы тогда не стартануть X-сервер, а потом - игру?

Пока ты не перейдешь в активный VT, игра не запустится.

steemandlinux ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.