52 lines
1.1 KiB
Bash
Executable File
52 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
SCREEN_RESOLUTION=${SCREEN_RESOLUTION:-"1920x1080x24"}
|
|
DISPLAY_NUM=99
|
|
URLS=${URLS:-'["http://172.17.0.1:4444/"]'}
|
|
VNC_PASSWORD=${VNC_PASSWORD:-"password"}
|
|
export URLS
|
|
export VNC_PASSWORD
|
|
export DISPLAY=":$DISPLAY_NUM"
|
|
|
|
clean() {
|
|
if [ -n "$XVFB_PID" ]; then
|
|
kill -TERM "$XVFB_PID"
|
|
fi
|
|
if [ -n "$X11VNC_PID" ]; then
|
|
kill -TERM "$X11VNC_PID"
|
|
fi
|
|
if [ -n "$RPROXY_PID" ]; then
|
|
kill -TERM "$RPROXY_PID"
|
|
fi
|
|
|
|
}
|
|
|
|
trap clean SIGINT SIGTERM
|
|
|
|
URL=$(choose $URL)
|
|
HOST=$(echo $URL | sed -e 's@\(.*\)://@@' -e 's@[:/]\(.*\)$@@')
|
|
|
|
/bin/bash -c 'echo -e "$VNC_PASSWORD\n$VNC_PASSWORD\nn\n" | vncpasswd file.passwd'>/dev/null
|
|
|
|
xvfb-run -l -n $DISPLAY_NUM -s "-ac -screen 0 $SCREEN_RESOLUTION -noreset -listen tcp" \
|
|
vncviewer passwd=file.passwd $HOST &
|
|
XVFB_PID=$!
|
|
|
|
retcode=1
|
|
until [ $retcode -eq 0 ]; do
|
|
xdpyinfo -display $DISPLAY >/dev/null 2>&1
|
|
retcode=$?
|
|
if [ $retcode -ne 0 ]; then
|
|
echo Waiting xvfb...
|
|
sleep 1
|
|
fi
|
|
done
|
|
|
|
x11vnc -display $DISPLAY -passwd selenoid -shared -forever -loop500 -rfbport 5900 -rfbportv6 5900 -logfile /dev/null &
|
|
X11VNC_PID=$!
|
|
|
|
rproxy $URL &
|
|
RPROXY_PID=$!
|
|
|
|
wait
|
|
|