Adarshu07 commited on
Commit
afc9b7a
Β·
verified Β·
1 Parent(s): dd0f64a

Update start.sh

Browse files
Files changed (1) hide show
  1. start.sh +54 -2
start.sh CHANGED
@@ -1,5 +1,57 @@
1
- #!/usr/bin/env bash
 
 
 
 
 
 
 
 
 
2
  set -e
3
 
4
- Xvfb :99 -screen 0 1280x720x24 -ac +extension RANDR &
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  exec python server.py
 
1
+ #!/bin/bash
2
+ # ╔══════════════════════════════════════════════════════════════╗
3
+ # β•‘ entrypoint.sh β•‘
4
+ # β•‘ 1. Create /tmp/.X11-unix if missing β•‘
5
+ # β•‘ 2. Start Xvfb on :99 manually (avoids pyvirtualdisplay β•‘
6
+ # β•‘ permission issues when running as non-root) β•‘
7
+ # β•‘ 3. Export DISPLAY=:99 β•‘
8
+ # β•‘ 4. Hand off to Python server β•‘
9
+ # β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
10
+
11
  set -e
12
 
13
+ echo "[entrypoint] ── Starting up ──────────────────────────────"
14
+
15
+ # ── 1. X11 socket directory ──────────────────────────────────
16
+ # Xvfb needs this; fails silently if it doesn't exist when
17
+ # running as non-root. Pre-create it so Xvfb can use it.
18
+ mkdir -p /tmp/.X11-unix
19
+ chmod 1777 /tmp/.X11-unix 2>/dev/null || true
20
+ echo "[entrypoint] /tmp/.X11-unix ready"
21
+
22
+ # ── 2. Kill any stale Xvfb ───────────────────────────────────
23
+ pkill Xvfb 2>/dev/null || true
24
+ rm -f /tmp/.X11-unix/X99 2>/dev/null || true
25
+
26
+ # ── 3. Start Xvfb on :99 ────────────────────────────────────
27
+ echo "[entrypoint] Starting Xvfb on :99 ..."
28
+ Xvfb :99 -screen 0 1920x1080x24 \
29
+ -ac \
30
+ +extension GLX \
31
+ +extension RANDR \
32
+ +render \
33
+ -noreset \
34
+ -nolisten tcp &
35
+
36
+ XVFB_PID=$!
37
+ echo "[entrypoint] Xvfb PID=$XVFB_PID"
38
+
39
+ # ── 4. Wait for display to be usable ─────────────────────────
40
+ for i in $(seq 1 20); do
41
+ if xdpyinfo -display :99 >/dev/null 2>&1; then
42
+ echo "[entrypoint] βœ“ Display :99 is ready (attempt $i)"
43
+ break
44
+ fi
45
+ sleep 0.5
46
+ done
47
+
48
+ # ── 5. Export display for all child processes ─────────────────
49
+ export DISPLAY=:99
50
+ echo "[entrypoint] DISPLAY=$DISPLAY"
51
+
52
+ # ── 6. Trap signals so Xvfb dies with the container ──────────
53
+ trap "echo '[entrypoint] Shutting down...'; kill $XVFB_PID 2>/dev/null; exit 0" SIGTERM SIGINT
54
+
55
+ # ── 7. Launch Python server ───────────────────────────────────
56
+ echo "[entrypoint] ── Launching server ────────────────────────"
57
  exec python server.py