#!/bin/sh set -e # 有头模式(HEADLESS=0)需要一个 X server。手动起 Xvfb(比 xvfb-run 省事、不依赖 xauth)。 if [ "${HEADLESS:-0}" = "0" ] || [ "${HEADLESS:-0}" = "false" ]; then : "${DISPLAY:=:99}" export DISPLAY rm -f /tmp/.X99-lock 2>/dev/null || true Xvfb "$DISPLAY" -screen 0 "${XVFB_SCREEN:-1366x900x24}" -nolisten tcp >/tmp/xvfb.log 2>&1 & XVFB_PID=$! # 等 Xvfb 起来 for _ in 1 2 3 4 5 6 7 8 9 10; do if [ -e /tmp/.X99-lock ] || xdpyinfo -display "$DISPLAY" >/dev/null 2>&1; then break; fi sleep 0.3 done trap 'kill "$XVFB_PID" 2>/dev/null || true' EXIT INT TERM fi exec "$@"