cf04e73f51
确认 goosed-prod-1..9 映射 18006-18014,更新 topology、发包必看、 发布 skill 与 release 脚本的动态 pool 校验。 Co-authored-by: Cursor <cursoragent@cursor.com>
57 lines
1.8 KiB
Bash
Executable File
57 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
if [[ -f "${ROOT}/.env" ]]; then
|
|
set -a
|
|
# shellcheck disable=SC1091
|
|
source "${ROOT}/.env"
|
|
set +a
|
|
fi
|
|
|
|
export NODE_ENV=production
|
|
export H5_PORT="${H5_PORT:-8081}"
|
|
export H5_PUBLIC_BASE_URL="${H5_PUBLIC_BASE_URL:-https://m.tkmind.cn}"
|
|
export TKMIND_API_TARGETS="${TKMIND_API_TARGETS:-https://127.0.0.1:18006,https://127.0.0.1:18007,https://127.0.0.1:18008,https://127.0.0.1:18009,https://127.0.0.1:18010,https://127.0.0.1:18011,https://127.0.0.1:18012,https://127.0.0.1:18013,https://127.0.0.1:18014}"
|
|
export TKMIND_API_TARGET="${TKMIND_API_TARGET:-https://127.0.0.1:18006}"
|
|
export TKMIND_API_TARGET_1="${TKMIND_API_TARGET_1:-https://127.0.0.1:18007}"
|
|
|
|
NODE_BIN="${NODE_BIN:-/opt/homebrew/opt/node@24/bin/node}"
|
|
if [[ ! -x "${NODE_BIN}" ]]; then
|
|
NODE_BIN="$(command -v node)"
|
|
fi
|
|
|
|
export GOOSED_MCP_NODE_PATH="${GOOSED_MCP_NODE_PATH:-${NODE_BIN}}"
|
|
export GOOSED_MCP_SERVER_PATH="${GOOSED_MCP_SERVER_PATH:-${ROOT}/mindspace-sandbox-mcp.mjs}"
|
|
|
|
free_port_if_stale_memind_listener() {
|
|
local port="${H5_PORT:-8081}"
|
|
local pids
|
|
pids="$(lsof -tiTCP:"${port}" -sTCP:LISTEN 2>/dev/null || true)"
|
|
[[ -z "${pids}" ]] && return 0
|
|
|
|
while read -r pid; do
|
|
[[ -z "${pid}" ]] && continue
|
|
local args
|
|
args="$(ps -p "${pid}" -o args= 2>/dev/null || true)"
|
|
if [[ "${args}" == *"${ROOT}/server.mjs"* ]]; then
|
|
echo "[portal-start] stopping stale Memind listener pid=${pid}" >&2
|
|
kill "${pid}" 2>/dev/null || true
|
|
sleep 1
|
|
if kill -0 "${pid}" 2>/dev/null; then
|
|
kill -9 "${pid}" 2>/dev/null || true
|
|
sleep 1
|
|
fi
|
|
continue
|
|
fi
|
|
echo "[portal-start] port ${port} held by foreign pid=${pid}; refusing to start" >&2
|
|
exit 1
|
|
done <<< "${pids}"
|
|
}
|
|
|
|
free_port_if_stale_memind_listener
|
|
|
|
exec "${NODE_BIN}" "${ROOT}/server.mjs"
|