test
This commit is contained in:
@@ -61,9 +61,9 @@ declare -A FE_CMD=(
|
||||
[pc]="yarn dev:web"
|
||||
[meetingh5]="npm run dev"
|
||||
[h5]="npm run dev"
|
||||
[cms]="pnpm run dev"
|
||||
[build-cms]="pnpm run dev"
|
||||
[build-down]="npm run dev"
|
||||
[cms]="pnpm run dev -- --port 8001"
|
||||
[build-cms]="pnpm run dev -- --port 8002"
|
||||
[build-down]="npm run dev -- --port 8003"
|
||||
)
|
||||
|
||||
# cms/build-cms/build-down 不配置端口时默认都是 8000,需手动指定
|
||||
@@ -72,8 +72,8 @@ declare -A FE_ENV=(
|
||||
[meetingh5]=""
|
||||
[h5]=""
|
||||
[cms]="HOST=0.0.0.0 PORT=8001"
|
||||
[build-cms]="PORT=8002"
|
||||
[build-down]="PORT=8003"
|
||||
[build-cms]="HOST=0.0.0.0 PORT=8002"
|
||||
[build-down]="HOST=0.0.0.0 PORT=8003"
|
||||
)
|
||||
|
||||
declare -A FE_PORT=(
|
||||
@@ -119,6 +119,34 @@ _check_fe_port_free() {
|
||||
fi
|
||||
}
|
||||
|
||||
_wait_fe_port_listen() {
|
||||
local name="$1"
|
||||
local port="${FE_PORT_NUM[$name]}"
|
||||
local i
|
||||
|
||||
for i in {1..10}; do
|
||||
if lsof -tiTCP:"$port" -sTCP:LISTEN &>/dev/null; then
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
error "$name 启动后未监听预期端口 $port"
|
||||
return 1
|
||||
}
|
||||
|
||||
_kill_tree() {
|
||||
local pid="$1" signal="${2:-TERM}"
|
||||
local children child
|
||||
|
||||
children=$(pgrep -P "$pid" 2>/dev/null || true)
|
||||
for child in $children; do
|
||||
_kill_tree "$child" "$signal"
|
||||
done
|
||||
|
||||
kill "-$signal" "$pid" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# ── 启动单个前端服务 ──────────────────────────────────────────────────────────
|
||||
_start_fe() {
|
||||
local name="$1"
|
||||
@@ -193,6 +221,18 @@ _start_fe() {
|
||||
|
||||
sleep 2
|
||||
if [[ -f "$pidfile" ]] && kill -0 "$(cat "$pidfile")" 2>/dev/null; then
|
||||
if ! _wait_fe_port_listen "$name"; then
|
||||
local started_pid
|
||||
started_pid="$(cat "$pidfile")"
|
||||
warn "$name 未监听预期端口 $port,清理本次启动进程 (PID=$started_pid)"
|
||||
_kill_tree "$started_pid" TERM
|
||||
sleep 1
|
||||
if kill -0 "$started_pid" 2>/dev/null; then
|
||||
_kill_tree "$started_pid" KILL
|
||||
fi
|
||||
rm -f "$pidfile"
|
||||
return 1
|
||||
fi
|
||||
success " ✓ $name (端口=$port, PID=$(cat "$pidfile")) ${FE_PORT[$name]} → $logfile"
|
||||
if [[ "$name" == "pc" ]]; then
|
||||
pc_check_wasm_assets "${PC_BACKEND_ORIGIN}"
|
||||
|
||||
Reference in New Issue
Block a user