[NO-TICKET] Add Start VNC Streaming Script to scripts/ (#4304)

Co-authored-by: Shuchang Zheng <wintonzheng0325@gmail.com>
This commit is contained in:
Aaron Perez
2026-01-01 14:38:21 -06:00
committed by GitHub
parent b333e4c829
commit d8633c27c1

78
scripts/start_vnc_streaming.sh Executable file
View File

@@ -0,0 +1,78 @@
#!/bin/bash
# Start VNC streaming services for Skyvern
#
# This script sets up the complete VNC streaming stack:
# - Xvfb (virtual X11 display)
# - x11vnc (VNC server for the display)
# - websockify (WebSocket-to-VNC proxy)
set -euo pipefail
readonly DISPLAY_NUM=":99"
readonly SCREEN_GEOMETRY="1920x1080x24"
readonly VNC_PORT="5900"
readonly WS_PORT="6080"
log() {
printf '%s\n' "$*"
}
is_running_exact() {
local process_name="$1"
pgrep -x "$process_name" > /dev/null 2>&1
}
is_running_match() {
local pattern="$1"
pgrep -f "$pattern" > /dev/null 2>&1
}
ensure_running() {
local service_label="$1"
local running_check_type="$2" # "exact" | "match"
local check_value="$3"
local start_cmd="$4"
if [[ "$running_check_type" == "exact" ]]; then
if is_running_exact "$check_value"; then
log "$service_label already running"
return 0
fi
else
if is_running_match "$check_value"; then
log "$service_label already running"
return 0
fi
fi
log "Service $service_label not running. Starting..."
eval "$start_cmd"
log "$service_label started"
}
log "Starting VNC streaming services for Skyvern..."
log ""
ensure_running \
"Xvfb" "exact" "Xvfb" \
"Xvfb $DISPLAY_NUM -screen 0 $SCREEN_GEOMETRY > /dev/null 2>&1 &"
ensure_running \
"x11vnc" "exact" "x11vnc" \
"x11vnc -display $DISPLAY_NUM -bg -nopw -listen localhost -xkb -forever > /dev/null 2>&1"
ensure_running \
"websockify" "match" "websockify.*${WS_PORT}" \
"websockify $WS_PORT localhost:${VNC_PORT} --daemon > /dev/null 2>&1"
log ""
log "🎉 VNC streaming services are now running!"
log ""
log "Configuration:"
log " - Xvfb display: ${DISPLAY_NUM}"
log " - VNC server: localhost:${VNC_PORT}"
log " - WebSocket proxy: localhost:${WS_PORT}"
log ""
log "To stop services:"
log " pkill x11vnc && pkill websockify"