40 lines
1.3 KiB
Bash
Executable File
40 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Global PIDs for cleanup
|
|
VNC_PID=""
|
|
FLUXBOX_PID=""
|
|
|
|
# Cleanup function to terminate background processes on script exit
|
|
cleanup() {
|
|
echo "Cleaning up background processes..."
|
|
# Kill processes in reverse order of startup. The '|| true' prevents errors if a process is already dead.
|
|
if [ -n "$FLUXBOX_PID" ]; then kill -TERM $FLUXBOX_PID 2>/dev/null || true; fi
|
|
if [ -n "$VNC_PID" ]; then kill -TERM $VNC_PID 2>/dev/null || true; fi
|
|
echo "Cleanup complete."
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
# Xvfb is now started by xvfb-run in the Dockerfile ENTRYPOINT.
|
|
# The DISPLAY variable will be set automatically by xvfb-run.
|
|
|
|
|
|
# It's safer to source conda.sh directly
|
|
source /opt/conda/etc/profile.d/conda.sh
|
|
conda activate camo
|
|
|
|
# Start supporting services (VNC, window manager)
|
|
echo "Starting VNC server on port 5900..."
|
|
# The -noxdamage flag is added to improve compatibility with VNC clients like the one on macOS.
|
|
# The '-localhost no' part was likely a typo and has been removed as the default is to allow non-localhost connections.
|
|
x11vnc -forever -usepw -display $DISPLAY -rfbport 5900 -o /var/log/x11vnc.log -shared -noxdamage &
|
|
VNC_PID=$!
|
|
|
|
echo "Starting Fluxbox window manager..."
|
|
fluxbox > /var/log/fluxbox.log 2>&1 &
|
|
FLUXBOX_PID=$!
|
|
|
|
# Start main application
|
|
echo "Starting Camoufox server with arguments: $@"
|
|
exec python3 camoufox_server.py "$@"
|