aboutsummaryrefslogtreecommitdiff
path: root/roles/tigervnc/files/vnc-server-wrapper
diff options
context:
space:
mode:
Diffstat (limited to 'roles/tigervnc/files/vnc-server-wrapper')
-rw-r--r--roles/tigervnc/files/vnc-server-wrapper51
1 files changed, 51 insertions, 0 deletions
diff --git a/roles/tigervnc/files/vnc-server-wrapper b/roles/tigervnc/files/vnc-server-wrapper
new file mode 100644
index 0000000..ee25926
--- /dev/null
+++ b/roles/tigervnc/files/vnc-server-wrapper
@@ -0,0 +1,51 @@
+#!/bin/bash
+set -euo pipefail
+
+VNC_PORT=5901
+DISP_NUM=1
+LOGFILE="/tmp/vnc-${USER}.log"
+
+usage() {
+ printf "%s\n" \
+ "wrapper script to manage tigervnc server sessions" \
+ "usage: $(basename $0) <start | stop | list>" \
+ "" \
+ "start start tigervnc on port ${VNC_PORT}" \
+ "stop loop 1 through 10 and kill any tigervnc server displays" \
+ "list list running tigervnc servers"
+ exit 1
+}
+
+case "${1:-}" in
+ start)
+ printf "%s\n" \
+ "linux connection options:" \
+ " ssh -fL ${VNC_PORT}:localhost:${VNC_PORT} user@server sleep 10; vncviewer localhost:${VNC_PORT}" \
+ " vncviewer -via user@server localhost::${VNC_PORT}" \
+ "" \
+ "windows connection options:" \
+ " PLINK.EXE -no-antispoof -N -L ${VNC_PORT}:localhost:${VNC_PORT} user@server" \
+ " \"C:\\Program Files (x86)\\TigerVNC\\vncviewer.exe\" localhost:${VNC_PORT}"
+
+ printf "%s\n" "[inf] starting tigervnc on :${DISP_NUM}, localhost-only"
+ vncserver :${DISP_NUM} \
+ -localhost yes \
+ -rfbport ${VNC_PORT} \
+ -securitytypes none \
+ -geometry 1280x800 \
+ -cleanstale &> "${LOGFILE}"
+ printf "%s\n" "[inf] vnc started, log: ${LOGFILE}"
+ ;;
+ stop)
+ printf "%s\n" "[inf] stopping all running tigervnc sessions"
+ for i in $(seq 1 10); do
+ vncserver -kill :$i -clean 2>/dev/null || true
+ done
+ ;;
+ list)
+ vncserver -list
+ ;;
+ *)
+ usage
+ ;;
+esac