[devel] запуск Xvfb при сборке пакетов
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_alt-linux=2Eorg?=
Пт Янв 25 15:18:25 MSK 2002
On Fri, Jan 25, 2002 at 01:54:22PM +0300, Alexey Voinov wrote:
> Сначала опишу ситуацию в которой код, используемый в настоящее время для
> поиска свободной циферки для запуска Xvfb, не работает.
>
> Я уже давно пересобираю все пакеты в chroot среде, к которой не монтируется
> даже /proc. В связи с этим получаю /tmp, который радикально отличается от
> настоящего тем, что в нём нет файла /tmp/.X11-unix/X0 в момет работы
> X сервера. Т.е. тот код, который используется сейчас радостно находит
> $DISPNUM==0 и считает, что Xvfb запустился. На самом деле этот сокет уже
> занят, о чём Xvfb сообщает.
>
> Предлагаю немного доработать то, что есть сейчас. У меня прекрасно
> отработал следующий код:
>
>
> unset XAUTHORITY ||:
> unset DISPLAY ||:
> DISPNUM=0
> while [ -z "$DISPLAY" ]; do
> while [ -f /tmp/.X$DISPNUM-lock -o -e /tmp/.X11-unix/X$DISPNUM ]; do
> DISPNUM=$[DISPNUM+1]
> [ "$DISPNUM" != 0 ]
> done
> DISPLAY=:$DISPNUM
> %_x11bindir/Xvfb $DISPLAY &
> if [ -f /tmp/.X$DISPNUM-lock -o -e /tmp/.X11-unix/X$DISPNUM ]; then
Это race condition.
> export DISPLAY
> else
> unset DISPLAY
> DISPNUM=$[DISPNUM+1]
> fi
> done
В общем, проблема есть, но хорошего решения я пока что не видел.
Стоит подумать о вспомогательной программе (bind_cloexec_socket && exec_Xvfb).
Regards,
Dmitry
+-------------------------------------------------------------------------+
Dmitry V. Levin mailto://ldv@alt-linux.org
ALT Linux Team http://www.altlinux.com/
Fandra Project http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 232 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20020125/2d1310c9/attachment-0001.bin>
Подробная информация о списке рассылки Devel