#!/bin/bash # Запускает Xvfb на DISPLAY :1 для wine PlayCtrl.dll, потом gunicorn. set -e # Очищаем stale lock от предыдущего крешнутого запуска rm -f /tmp/.X1-lock /tmp/.X11-unix/X1 2>/dev/null || true # Xvfb в фоне. -nolisten tcp чтобы не ловили извне. Xvfb :1 -screen 0 640x480x8 -nolisten tcp & XVFB_PID=$! # Xvfb обычно поднимается за <1с sleep 1 trap "kill $XVFB_PID 2>/dev/null || true" EXIT exec gunicorn --bind 0.0.0.0:8000 --workers 1 --threads 16 \ --timeout 3600 --worker-class gthread app:app