[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