On Mon, Dec 13, 2004 at 09:07:50AM +0300, Yuri N. Sedunov wrote: > > start_Xvfb() > > { > > local n=0; while [ -e /tmp/.X$n-lock ]; do n=$[$n+1]; done > > /usr/X11R6/bin/Xvfb :$n & sleep 1; kill -0 %+ > > trap "kill $(cat /tmp/.X$n-lock)" SIGHUP SIGPIPE SIGINT SIGQUIT SIGTERM > > EXIT export DISPLAY=:$n > > } > > [ -n "$DISPLAY" ] || start_Xvfb > > > > Кажется, этот велосипед уже придумали, называется xvfb-run. Мне известны две > реализации, одна из них находится в одноименном пакете. Хех. Сигналы оно плоховато ловит. $ killall Xvfb xvfb-run Xvfb: no process killed xvfb-run: no process killed $ xvfb-run cat & sleep 10; kill -HUP %+ [1] 26180 xauth: creating new authority file /home/at/.Xauthority [1] + suspended (tty input) xvfb-run cat Hangup [1] + exit 129 xvfb-run cat $ ps -auwx |grep vfb at 26188 5.3 2.1 6904 2732 pts/3 SN 10:02 0:02 Xvfb :99 -screen 0 640x480x8 -nolisten tcp at 26194 0.0 0.4 1660 564 pts/3 S 10:03 0:00 grep vfb $