#!/usr/bin/with-contenv bash # 等待微信窗口出现,最多等 5 分钟;超时也启动 bridge(/api/status 会返回 not_running) WAITED=0 MAX_WAIT=300 while ! xdotool search --name "微信" >/dev/null 2>&1; do sleep 2 WAITED=$((WAITED + 2)) if [ "$WAITED" -ge "$MAX_WAIT" ]; then echo "woc-bridge: 等待微信窗口超时(${WAITED}s),仍然启动 bridge" >&2 break fi done # 以 abc 用户身份运行(与微信同 X 会话,才能操作微信窗口) # s6-setuidgid 不接受 VAR=value 参数,须先用 s6-env 设环境变量再切用户 # 校验 ptrace 权限(key_extractor 读微信进程内存需要) if [ -w /proc/sys/kernel/yama/ptrace_scope ] 2>/dev/null; then echo 0 > /proc/sys/kernel/yama/ptrace_scope 2>/dev/null || true fi exec s6-env DISPLAY=${DISPLAY:-:1} XAUTHORITY=/config/.Xauthority \ s6-setuidgid abc \ python3 /opt/woc-bridge/server.py \ --listen 0.0.0.0:8088 \ --wechat-db /config \ --display ${DISPLAY:-:1}