File tree Expand file tree Collapse file tree 1 file changed +27
-2
lines changed Expand file tree Collapse file tree 1 file changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -59,18 +59,43 @@ RUN cat > /app/start.sh << 'EOF'
5959# !/bin/sh
6060# Smart startup: use existing X or start our own
6161
62+ cleanup()
63+ {
64+ echo "Shutting down..."
65+ if [ -n "$DEMOPID" ]; then
66+ kill $DEMOPID 2>/dev/null
67+ wait $DEMOPID 2>/dev/null
68+ fi
69+ if [ -n "$XPID" ]; then
70+ kill $XPID 2>/dev/null
71+ wait $XPID 2>/dev/null
72+ fi
73+ exit 0
74+ }
75+
76+ # Set up signal handlers
77+ trap cleanup TERM INT
78+
6279# Check if X server is already available
6380if xdpyinfo -display "${DISPLAY:-:0}" >/dev/null 2>&1; then
6481 echo "Using existing X server on $DISPLAY"
6582 exec ./demo "$@"
6683else
6784 echo "No X server found, starting embedded X server..."
68- # Start X server in background and run demo
85+ # Start X server in background
6986 Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile /tmp/xorg.log -config /etc/X11/xorg.conf :0 &
7087 XPID=$!
7188 sleep 2
72- DISPLAY=:0 ./demo "$@"
89+
90+ # Run demo in background so we can handle signals
91+ DISPLAY=:0 ./demo "$@" &
92+ DEMOPID=$!
93+
94+ # Wait for demo to finish
95+ wait $DEMOPID
7396 EXITCODE=$?
97+
98+ # Clean up X server
7499 kill $XPID 2>/dev/null
75100 wait $XPID 2>/dev/null
76101 exit $EXITCODE
You can’t perform that action at this time.
0 commit comments