diff --git a/scripts/svc.sh b/scripts/svc.sh index 4383af44..4d072cef 100755 --- a/scripts/svc.sh +++ b/scripts/svc.sh @@ -3948,9 +3948,10 @@ agent_static_preflight() { return 0 } -# agent_exec_env_prepare:多个实例共用 runtime/envs。产物认识 env 子命令时先 ensure。 -# 下载失败只警告。current 基础层存在时,经环境变量把根和依赖层交给 serve, -# 不改写已经持久化的 exec=。 +# agent_exec_env_prepare:多个实例共用 runtime/envs。启动不下载解释器或 wheel, +# 避免把 start 拖进网络安装(真实组合测试的启动上限是 120 秒)。 +# current 基础层已经存在时,经环境变量把根和依赖层交给 serve,不改写 exec=。 +# 首次建立基础层用:<二进制> env ensure --root "$RUNTIME/envs" agent_exec_env_prepare() { local probe root id deps probe="$("$ENV_BIN" env 2>&1 || true)" @@ -3959,13 +3960,13 @@ agent_exec_env_prepare() { *) return 0 ;; esac root="$RUNTIME/envs" - if ! "$ENV_BIN" env ensure --root "$root"; then - c_warn "[$ENV_NAME] Python 环境根未就绪($root)。启动继续,基础层导入不可用,直到 env ensure 成功。" + if [ ! -L "$root/current" ]; then + c_warn "[$ENV_NAME] Python 基础层未建立($root)。启动继续;需要时运行:$ENV_BIN env ensure --root $root" + return 0 fi - [ -L "$root/current" ] || return 0 id="$(basename "$(readlink "$root/current")")" deps="$root/layers/$id/site-packages" - [ -d "$deps" ] || return 0 + [ -d "$deps" ] || { c_warn "[$ENV_NAME] Python 基础层 $id 缺少 site-packages"; return 0; } guard_env+=("AGENT_SYSTEM_EXEC_ENV_ROOT=$root") guard_env+=("AGENT_SYSTEM_EXEC_DEPS_DIR=$deps") c_info "[$ENV_NAME] Python 环境:$root (基础层 $id)"