14 echo Usage: $0 [-r RESOL_XxRESOL_Y] -u UID [-g GID] -p PORTserver -h Frontend
17 IFS=' ' read -ra ADDR <<< "$ARGS"
19 if [ ${lenADDR} -gt 0 ]; then
21 while [ $i -lt ${lenADDR} ]; do
24 RESOL=${ADDR[$((i+1))]};;
26 myUID=${ADDR[$((i+1))]};;
28 myGID=${ADDR[$((i+1))]};;
30 myPORT=${ADDR[$((i+1))]};;
32 myFront=${ADDR[$((i+1))]};;
42groupadd -g ${myGID} myuser
43useradd -r -u ${myUID} -g myuser myuser
45if [ -d ${HOME_user} ]; then
46 mkdir -p ${HOME_user}/.vnc
48chmod 700 ${HOME_user}/.vnc
49chown -R myuser:myuser ${HOME_user}
51chmod 600 ${HOME_user}/.ssh/config
53LOGFILE=${HOME_user}/.vnc/log
55chown myuser:myuser $LOGFILE
57echo "start.sh with args : ${ARGS[*]}" >> $LOGFILE
59export LD_LIBRARY_PATH=/usr/local/lib64:/usr/lib64
60if ! [ -e ${HOME_user}/.vnc/passwd ]; then
61 if [ -z "$VNC_PASSWORD" ]; then
62 choose() { echo -n ${1:$((RANDOM%${#1})):1}; }
64 for i in $(seq 1 8); do
65 choose "-._+0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
68 echo Random Password Generated: $password |tee -a $LOGFILE
69 echo "$password" |xargs -I@ x11vnc -storepasswd @ ${HOME_user}/.vnc/passwd
71 echo "$VNC_PASSWORD" |xargs -I@ x11vnc -storepasswd @ ${HOME_user}/.vnc/passwd
73 chmod 600 ${HOME_user}/.vnc/passwd
77 echo Random Password Generated: $(x11vnc -showrfbauth ${HOME_user}/.vnc/passwd |tail -1 |sed -e 's/.*pass: //' ) |tee -a $LOGFILE
79chown -R myuser:myuser ${HOME_user}
81# Change ldconfig paths if no nvidia device
82if [ ! -e /dev/nvidia0 ]; then
83 rm -f /etc/ld.so.conf.d/GL.conf
87echo "allowed_users = anybody" >> /etc/X11/Xwrapper.config
88#mknod -m 666 /dev/tty16 c 5 0
93# Create the xstartup file
96export DISPLAY=$DISPLAY
98xterm -rv -geometry ${RESOL}-0-0 -e /opt/client_python ${DOCKERID} ${myPORT} ${myFront} &
103#unset SESSION_MANAGER
104#unset DBUS_SESSION_BUS_ADDRESS
105" >${HOME_user}/.vnc/xstartup
106chmod 755 ${HOME_user}/.vnc/xstartup
108chown -R myuser:myuser ${HOME_user}
110echo export DOCKERID=$DOCKERID >> ${HOME_user}/.bashrc
117export LD_LIBRARY_PATH=/usr/local/lib64:/usr/lib64:/usr/lib64/dri:/usr/lib64/nvidia390
118#LD_PRELOAD=/usr/lib64/nvidia-current/libGL.so.1
119/usr/bin/vncserver -geometry ${RESOL} -fg 2>&1 |tee -a $LOGFILE
121#${HOME_user}/.vnc/xstartup
122" >${HOME_user}/startx
123chown myuser:myuser ${HOME_user}/startx
124chmod a+x ${HOME_user}/startx
126chown -R myuser:myuser ${HOME_user}
128# Start and wait for either Xvnc to be fully up or we hit the timeout.
129su - myuser -l -c ${HOME_user}/startx