#!/bin/bash ### every exit != 0 fails the script set -e # should also source $STARTUPDIR/generate_container_user source $HOME/.bashrc ## correct forwarding of shutdown signal cleanup () { kill -s SIGTERM $! exit 0 } trap cleanup SIGINT SIGTERM ## resolve_vnc_connection VNC_IP=$(hostname -i) # first entry is control, second is view (if only one is valid for both) mkdir -p "$HOME/.vnc" PASSWD_PATH="$HOME/.vnc/passwd" echo "$VNC_PW" | kasmvncpasswd -f > $HOME/.kasmpasswd chmod 0600 $HOME/.kasmpasswd openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $HOME/.vnc/self.pem -out $HOME/.vnc/self.pem -subj "/C=US/ST=VA/L=None/O=None/OU=DoFu/CN=kasm/emailAddress=none@none.none" vncserver :1 -interface 0.0.0.0 vncserver -kill :1 if [[ -f $PASSWD_PATH ]]; then rm -f $PASSWD_PATH fi #echo "$VNC_PW" | vncpasswd -f > $PASSWD_PATH #echo "$VNC_VIEW_ONLY_PW" | vncpasswd -f >> $PASSWD_PATH #chmod 600 $PASSWD_PATH unset VNC_VIEW_ONLY_PW unset VNC_PW if [[ $DEBUG == true ]]; then echo -e "\n------------------ start VNC server ------------------------" echo "remove old vnc locks to be a reattachable container" fi vncserver -kill $DISPLAY &> $HOME/.vnc/vnc_startup.log \ || rm -rfv /tmp/.X*-lock /tmp/.X11-unix &> $HOME/.vnc/vnc_startup.log \ || echo "no locks present" echo -e "start vncserver with param: VNC_COL_DEPTH=$VNC_COL_DEPTH, VNC_RESOLUTION=$VNC_RESOLUTION\n..." vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -FrameRate=$MAX_FRAME_RATE -websocketPort $VNC_PORT -cert $HOME/.vnc/self.pem -sslOnly -interface 0.0.0.0 $VNCOPTIONS #&> $STARTUPDIR/no_vnc_startup.log PID_SUN=$! echo -e "start window manager\n..." $STARTUPDIR/window_manager_startup.sh #&> $STARTUPDIR/window_manager_startup.log ## log connect options echo -e "\n\n------------------ VNC environment started ------------------" echo -e "\nVNCSERVER started on DISPLAY= $DISPLAY \n\t=> connect via VNC viewer with $VNC_IP:$VNC_PORT" echo -e "\nnoVNC HTML client started:\n\t=> connect via http://$VNC_IP:$NO_VNC_PORT/?password=...\n" echo "WEB PID: $PID_SUB" # tail vncserver logs tail -f $HOME/.vnc/*$DISPLAY.log & eval "$@" wait $PID_SUB echo "Exiting Kasm container"