Files
starRiverProperty/scripts/test-env/start-all.sh
hpd840321 7b2bd307f1 Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.)
- frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts
- scripts/: build, test-env, tools (Docker Compose, service templates, API parity)
- docs/: AGENTS.md, superpowers specs, architecture docs
- .gitignore: standard Java/Maven exclusions

Moved from legacy maven-*/ root layout to backend/ organized structure.
2026-05-09 09:56:45 +08:00

93 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# start-all.sh — 按拓扑序启动所有 Java 服务
source "$(dirname "${BASH_SOURCE[0]}")/config/env.sh"
export JAVA_HOME
export PATH="$JAVA_HOME/bin:$PATH"
log_info "Phase 5: Starting all services..."
mkdir -p "$LOG_DIR"
# 启动函数: start_service <name> <jar_path> <port> <java_opts> <extra_args>
start_service() {
local name="$1"; local jar="$2"; local port="$3"
local opts="${4:-$JAVA_OPTS_LIGHT}"; shift 4
if pgrep -f "$(basename "$jar")" >/dev/null 2>&1; then
log_warn " $name already running ($(pgrep -f "$(basename "$jar")" | tr '\n' ' ')) — skipping"
return 0
fi
log_info "Starting $name (port $port)..."
if [[ ! -f "$jar" ]]; then
log_error " JAR not found: $jar"
return 1
fi
nohup $JAVA -jar $opts "$jar" "$@" \
--spring.config.location="$(dirname "$jar")/" \
> "$LOG_DIR/${name}.log" 2>&1 &
local pid=$!
echo $pid > "$LOG_DIR/${name}.pid"
# 等待服务就绪 (最多 60s)
for i in $(seq 1 30); do
sleep 2
if curl -sf "http://127.0.0.1:$port/health" &>/dev/null; then
log_ok " $name (pid=$pid, port=$port) STARTED"
return 0
fi
done
log_warn " $name health check timeout after 60s (pid=$pid)"
return 1
}
# ============================================
# 启动顺序 (拓扑序)
# ============================================
# A1: ninca-common
COMMON_JAR=$(find "$SERVICE_DIR/ninca-common" -name "*.jar" -not -name "*-sources*" 2>/dev/null | head -1)
if [[ -n "$COMMON_JAR" ]]; then
start_service "ninca-common" "$COMMON_JAR" "$PORT_NINCA_COMMON" "$JAVA_OPTS_LIGHT"
fi
# A2: component-organization
ORG_JAR=$(find "$SERVICE_DIR/component-org" -name "*.jar" -not -name "*-sources*" 2>/dev/null | head -1)
if [[ -n "$ORG_JAR" ]]; then
start_service "component-org" "$ORG_JAR" "$PORT_COMPONENT_ORG" "$JAVA_OPTS_LIGHT"
fi
# A10: CRK-std
CRK_DIR="$STAR_CENTER/ninca-crk-std/ninca-crk-std-backend-V2.9.2_20210730"
CRK_JAR="$STAR_CENTER/ninca-crk-std/ninca-crk-std-backend-V2.9.2_20210730.jar"
if [[ -f "$CRK_JAR" ]]; then
start_service "crk-std" "$CRK_JAR" "$PORT_CRK_STD" "$JAVA_OPTS_HEAVY" --spring.config.location="$CRK_DIR/"
fi
# A11: alarm-app
ALARM_JAR="$STAR_CENTER/ninca-qk-alarm/ninca-qk-alarm-app-V2.9.2_20210730.jar"
if [[ -f "$ALARM_JAR" ]]; then
start_service "alarm-app" "$ALARM_JAR" "$PORT_ALARM" "$JAVA_OPTS_HEAVY" --spring.config.location="$STAR_CENTER/ninca-qk-alarm/"
fi
# A12: elevator V2 (最后启动) — use wildcard to match any version
ELEVATOR_V2_JAR=$(ls -t "$REPO_ROOT/backend/cw-elevator-application/deploy/v2-maven/cw-elevator-application-"*.jar 2>/dev/null | head -1)
if [[ -n "$ELEVATOR_V2_JAR" ]]; then
start_service "elevator-v2" "$ELEVATOR_V2_JAR" "$PORT_ELEVATOR_V2" "$JAVA_OPTS_HEAVY" --spring.config.location="$REPO_ROOT/backend/cw-elevator-application/deploy/v2-maven/"
else
log_warn "No elevator V2 JAR found in deploy/v2-maven/"
fi
# A13: elevator V1 (对拍对照)
ELEVATOR_V1_JAR=$(ls -t "$REPO_ROOT/backend/cw-elevator-application/deploy/v1-legacy/cw-elevator-application-"*.jar 2>/dev/null | head -1)
if [[ -n "$ELEVATOR_V1_JAR" ]]; then
start_service "elevator-v1" "$ELEVATOR_V1_JAR" "$PORT_ELEVATOR_V1" "$JAVA_OPTS_HEAVY" --spring.config.location="$REPO_ROOT/backend/cw-elevator-application/deploy/v1-legacy/"
else
log_warn "No elevator V1 JAR found in deploy/v1-legacy/"
fi
log_info "All services started"