Spaces:
Paused
Paused
| set -e | |
| # 确保基础目录结构存在 (Top level) | |
| mkdir -p /root/.openclaw/sessions | |
| mkdir -p /root/.openclaw/workspace | |
| # 关键修复:确保默认 agent 的 session 目录存在 | |
| mkdir -p /root/.openclaw/agents/main/sessions | |
| # 1. 启动前执行数据恢复 | |
| python3 /usr/local/bin/sync.py restore || true | |
| # 2. 环境变量替换 | |
| if [ -f "/root/.openclaw/openclaw.json.template" ]; then | |
| echo "--- [CONFIG] 正在执行环境变量替换 (openclaw.json) ---" | |
| envsubst < /root/.openclaw/openclaw.json.template > /root/.openclaw/openclaw.json | |
| fi | |
| # 3. 权限优化 | |
| chmod 700 /root/.openclaw | |
| if [ -f "/root/.openclaw/openclaw.json" ]; then | |
| chmod 600 /root/.openclaw/openclaw.json | |
| fi | |
| # 4. 驱动发现清理 | |
| CLEAN_BASE=$(echo "$OPENAI_API_BASE" | sed "s|/chat/completions||g" | sed "s|/v1/|/v1|g" | sed "s|/v1\$|/v1|g") | |
| # 5. 启动定时备份进程 (后台运行) | |
| (while true; do sleep 10800; python3 /usr/local/bin/sync.py backup; done) & | |
| # 6. 自动配对批准监视器 (后台循环) | |
| echo "--- [DEVICES] 开启自动配对批准监视器 ---" | |
| ( | |
| while true; do | |
| DEVICES_OUT=$(openclaw devices list 2>/dev/null || true) | |
| REQUEST_IDS=$(echo "$DEVICES_OUT" | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' || true) | |
| if [ ! -z "$REQUEST_IDS" ]; then | |
| for req_id in $REQUEST_IDS; do | |
| echo "--- [DEVICES] 尝试批准 Request ID: $req_id ---" | |
| openclaw devices approve "$req_id" || true | |
| done | |
| python3 /usr/local/bin/sync.py backup || true | |
| fi | |
| sleep 20 | |
| done | |
| ) & | |
| # 7. 运行 Doctor 检查并尝试修复环境 | |
| echo "--- [DOCTOR] 正在运行环境健康检查 ---" | |
| openclaw doctor --fix || true | |
| # 8. 启动 OpenClaw 网关 | |
| echo "--- [GATEWAY] 启动网关服务 ---" | |
| exec openclaw gateway run --port ${PORT:-7860} |