openclaw-ai / start-openclaw
luoluoluo22's picture
Fix: Hard reset line endings to LF
1cef12e
#!/bin/bash
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}