Keep x11vnc alive for remote login
This commit is contained in:
1 parent
89f7376b1b
commit
51438aa5db
2 files changed
+38
-1
No files matched your search
+22
-1
@@ -54,7 +54,7 @@ if command -v fluxbox >/dev/null 2>&1; then
|
||||
fluxbox >/dev/null 2>&1 &
|
||||
fi
|
||||
|
||||
VNC_ARGS=(-display "${DISPLAY}" -forever -shared -rfbport "${VNC_PORT}" -nopw_warn)
|
||||
VNC_ARGS=(-display "${DISPLAY}" -forever -shared -rfbport "${VNC_PORT}")
|
||||
if [ -n "${VNC_PASSWORD:-}" ]; then
|
||||
mkdir -p /root/.vnc
|
||||
x11vnc -storepasswd "${VNC_PASSWORD}" /root/.vnc/passwd >/dev/null
|
||||
@@ -68,6 +68,27 @@ fi
|
||||
x11vnc "${VNC_ARGS[@]}" >/var/log/x11vnc.log 2>&1 &
|
||||
X11VNC_PID=$!
|
||||
|
||||
VNC_READY=0
|
||||
for i in $(seq 1 50); do
|
||||
if ! kill -0 "${X11VNC_PID}" 2>/dev/null; then
|
||||
echo "[entrypoint] FATAL: x11vnc exited before becoming ready" >&2
|
||||
cat /var/log/x11vnc.log >&2
|
||||
exit 1
|
||||
fi
|
||||
if (: </dev/tcp/127.0.0.1/${VNC_PORT}) 2>/dev/null; then
|
||||
echo "[entrypoint] VNC server is ready after ${i} checks"
|
||||
VNC_READY=1
|
||||
break
|
||||
fi
|
||||
sleep 0.2
|
||||
done
|
||||
|
||||
if [ "${VNC_READY}" != "1" ]; then
|
||||
echo "[entrypoint] FATAL: x11vnc did not listen on port ${VNC_PORT} after 10s" >&2
|
||||
cat /var/log/x11vnc.log >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[entrypoint] starting noVNC (websockify) on :${NOVNC_PORT}"
|
||||
websockify --web "${NOVNC_WEB_DIR}" "${NOVNC_PORT}" "localhost:${VNC_PORT}" \
|
||||
>/var/log/websockify.log 2>&1 &
|
||||
|
||||
Reference in new issue
Block a user