#!/bin/bash # X server + VNC in one (Xvnc), the XFCE session on it, and noVNC's websocket bridge in front. # VNC has no password: the container's port is published on 127.0.0.1 only (see sim/desktop.py). set -u export DISPLAY=:1 HOME=/home/candidate USER=candidate SHELL=/bin/bash rm -f /tmp/.X1-lock /tmp/.X11-unix/X1 Xvnc :1 -geometry "${GEOMETRY:-1600x900}" -depth 24 -rfbport 5901 -localhost \ -SecurityTypes None -AlwaysShared -desktop "${DESKTOP_NAME:-exam}" >/tmp/xvnc.log 2>&1 & for _ in $(seq 50); do [ -S /tmp/.X11-unix/X1 ] && break; sleep 0.1; done cd "$HOME" dbus-launch --exit-with-session startxfce4 >/tmp/xfce.log 2>&1 & # noVNC is at /novnc/ (/srv/novnc), not /: browsers may still hold the Debian image's noVNC 1.6 at # the old paths, cached before websockify-no-store. exec websockify-no-store --web /srv 6080 127.0.0.1:5901