TiledViz
Loading...
Searching...
No Matches
start.sh
1#!/bin/sh
2
3RESOL=3840x2160
4
5# mail system
6#postfix start
7
8ARGS=$@
9#echo ${ARGS[@]}
10
11#1920x1080
12myUID=1000
13myGID=1000
14PORTssh=22
15
16export ConnectionId=$1
17export POSTGRES_HOST=$2
18export POSTGRES_PORT=$3
19export POSTGRES_DB=$4
20export POSTGRES_USER=$5
21export POSTGRES_PASSWORD="$6"
22
23if [ -z "$5" ]; then
24 echo Usage: $0 ConnectionId POSTGRES_HOST POSTGRES_PORT POSTGRES_DB POSTGRES_USER POSTGRES_PASSWORD [-r RESOL_XxRESOL_Y] -p PORTssh -u UID [-g GID] [-d]
25 exit 1
26else
27 IFS=' ' read -ra ADDR <<< "$ARGS"
28
29 lenADDR=${#ADDR[@]}
30 if [ ${lenADDR} -gt 0 ]; then
31 i=6
32 while [ $i -lt ${lenADDR} ]; do
33 case "${ADDR[$i]}" in
34 '-r')
35 RESOL=${ADDR[$((i+1))]};;
36 '-u')
37 myUID=${ADDR[$((i+1))]};;
38 '-g')
39 myGID=${ADDR[$((i+1))]};;
40 '-p')
41 PORTssh=${ADDR[$((i+1))]};;
42 '-d')
43 debug=true;;
44 '.*')
45 myGID=${myUID}
46 esac
47 i=$((i+2));
48 done
49fi
50fi
51
52
53/etc/init.d/postfix start
54sed -e "s&#Port 22&Port $PORTssh&" -i /etc/ssh/sshd_config
55/usr/libexec/openssh/sshd-keygen
56/usr/sbin/sshd -E /var/log/sshd.log
57
58groupadd -g ${myGID} myuser
59useradd -r -u ${myUID} -g myuser myuser
60HOME_user=/home/myuser
61chmod 700 ${HOME_user}/.vnc
62chown myuser:myuser ${HOME_user}
63
64mkdir ${HOME_user}/.ssh
65touch ${HOME_user}/.ssh/config
66chown myuser:myuser -R ${HOME_user}/.ssh
67chmod 600 ${HOME_user}/.ssh/config
68
69LOGFILE=${HOME_user}/.vnc/$(hostname).log
70touch $LOGFILE
71chown myuser:myuser $LOGFILE
72
73echo "start.sh with args : ${ARGS[*]}" >> $LOGFILE
74
75if ! [ -e ${HOME_user}/.vnc/passwd ]; then
76 choose() { echo -n ${1:$((RANDOM%${#1})):1}; }
77 password=$({
78 for i in $(seq 1 8); do
79 choose "-._+0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
80 done
81 })
82 echo Random Password Generated: $password |tee -a $LOGFILE
83 echo "$password" |xargs -I@ x11vnc -storepasswd @ ${HOME_user}/.vnc/passwd
84 chmod 600 ${HOME_user}/.vnc/passwd
85
86 sleep 1
87else
88 echo Random Password Generated: $(x11vnc -showrfbauth ${HOME_user}/.vnc/passwd |tail -1 |sed -e 's/.*pass: //' ) |tee -a $LOGFILE
89fi
90chown -R myuser:myuser ${HOME_user}/.vnc
91
92# Change ldconfig paths if no nvidia device
93if [ ! -e /dev/nvidia0 ]; then
94 rm -f /etc/ld.so.conf.d/GL.conf
95 ldconfig
96fi
97
98echo "start X "
99
100xvfbLockFilePath="/tmp/.X1-lock"
101if [ -f "${xvfbLockFilePath}" ]
102then
103 echo "Removing xvfb lock file '${xvfbLockFilePath}'..."
104 if ! rm -v "${xvfbLockFilePath}"
105 then
106 echo "Failed to remove xvfb lock file" 1>&2
107 exit 1
108 fi
109fi
110
111echo "export HOSTNAME="${HOSTNAME} >> /etc/profile.d/env_variable.sh
112
113# Set defaults if the user did not specify envs.
114export DISPLAY=:1
115#${XVFB_DISPLAY:-:1}
116screen=${XVFB_SCREEN:-0}
117resolution=${XVFB_RESOLUTION:-${RESOL}x24}
118timeout=${XVFB_TIMEOUT:-5}
119
120# Create the xstartup file
121echo "#!/bin/bash
122. /home/myuser/.bashrc
123sleep 1
124pgrep -fa Xvfb
125export DISPLAY=$DISPLAY
126if [ X\"$debug\" != X ]; then
127 icewm-light &
128fi
129
130/opt/vnccommand &
131
132sleep 1
133if [ X\"$debug\" != X ]; then optDEB=1; fi
134stty sane
135export TERM=linux
136xterm -rv -geometry ${RESOL} -fa 'Adobe Courrier:size=12:antialias=true' -e /TiledViz/TVConnections/tvconnections.sh ${ConnectionId} ${POSTGRES_HOST} ${POSTGRES_PORT} ${POSTGRES_DB} ${POSTGRES_USER} '${POSTGRES_PASSWORD}' \$optDEB
137" >${HOME_user}/.vnc/xstartup
138chmod 755 ${HOME_user}/.vnc/xstartup
139
140echo export DOCKERID=$DOCKERID >> ${HOME_user}/.bashrc
141
142chown -R myuser:myuser ${HOME_user}/.vnc ${HOME_user}/.bashrc
143
144# Run the vncserver
145cd
146echo $( hostname )
147
148
149echo "#!/bin/bash
150ssh-keygen -t ed25519 -N '' -f ~myuser/.ssh/id_ed25519
151Xvfb ${DISPLAY} -screen 0 ${RESOL}x24 2>&1 |tee -a $LOGFILE &
152sleep 2
153${HOME_user}/.vnc/xstartup
154" >${HOME_user}/startx
155chown myuser:myuser ${HOME_user}/startx
156chmod a+x ${HOME_user}/startx
157
158cat ${HOME_user}/startx
159
160su - myuser -l -c ${HOME_user}/startx
161#ls -al /root/.vnc/
162#exec xterm
163
164
165# loopCount=0
166# until xdpyinfo -display ${DISPLAY} > /dev/null 2>&1
167# do
168# loopCount=$((loopCount+1))
169# sleep 1
170# if [ ${loopCount} -gt ${timeout} ]
171# then
172# echo "xvfb failed to start" 1>&2
173# exit 1
174# fi
175# done
176
177# su - myuser -l -c "${HOME_user}/.vnc/xstartup "