d5d381759e
- 新增计算方案保存与方案二筛选参数 - 支持方案二桨角规则和有效数据导出 - 优化功率曲线绘制和设计功率展示
80 lines
2.2 KiB
Bash
Executable File
80 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
||
# =====================================================
|
||
# run.sh — 打包并前台运行 wind_power(后端托管前端 SPA)
|
||
#
|
||
# 流程:package.sh 打包 → 从 runtime/wind_power/ 启动 wind_server
|
||
# (后端同时提供 /api 与 SPA 静态资源,即“前后端一起跑”)
|
||
#
|
||
# 开发模式前端热更新:
|
||
# ./run.sh # 后端托管生产前端,监听 :8080
|
||
# cd frontend/web_app && npm run dev # 前端 dev :5173,/api 代理到 :8080
|
||
#
|
||
# 参考: edge_collector/run_cloud.sh
|
||
# =====================================================
|
||
|
||
set -euo pipefail
|
||
|
||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
APP_DIR="${ROOT_DIR}/runtime/wind_power"
|
||
BIN_NAME="wind_server"
|
||
|
||
stop_existing_processes() {
|
||
local pids=()
|
||
mapfile -t pids < <(pgrep -x "${BIN_NAME}" 2>/dev/null || true)
|
||
if [ "${#pids[@]}" -eq 0 ]; then
|
||
return
|
||
fi
|
||
|
||
echo "[run] 终止旧进程 ${BIN_NAME} PID: ${pids[*]}"
|
||
kill "${pids[@]}" 2>/dev/null || true
|
||
|
||
for _ in {1..20}; do
|
||
mapfile -t pids < <(pgrep -x "${BIN_NAME}" 2>/dev/null || true)
|
||
if [ "${#pids[@]}" -eq 0 ]; then
|
||
echo "[run] 旧进程已退出"
|
||
return
|
||
fi
|
||
sleep 0.2
|
||
done
|
||
|
||
echo "[run] 旧进程未正常退出,强制终止 PID: ${pids[*]}"
|
||
kill -9 "${pids[@]}" 2>/dev/null || true
|
||
sleep 0.5
|
||
}
|
||
|
||
# 1. 终止旧进程
|
||
stop_existing_processes
|
||
|
||
# 2. 打包(传递额外参数,如 --build-type Debug)
|
||
echo "[run] 打包..."
|
||
bash "${ROOT_DIR}/package.sh" "$@"
|
||
|
||
# 3. 启动
|
||
cd "${APP_DIR}"
|
||
mkdir -p logs data
|
||
export LD_LIBRARY_PATH="${APP_DIR}/libs${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
|
||
|
||
echo "[run] 启动 ${BIN_NAME} ..."
|
||
./${BIN_NAME} &
|
||
SERVER_PID=$!
|
||
|
||
echo ""
|
||
echo "========================================"
|
||
echo " wind_power 已启动"
|
||
echo " PID: ${SERVER_PID}"
|
||
echo " 工作目录: ${APP_DIR}"
|
||
echo " 访问: http://localhost:8080 (Ctrl+C 停止)"
|
||
echo "========================================"
|
||
|
||
# 4. 等待退出信号
|
||
cleanup() {
|
||
echo ""
|
||
echo "[run] 正在停止..."
|
||
kill "${SERVER_PID}" 2>/dev/null || true
|
||
wait "${SERVER_PID}" 2>/dev/null || true
|
||
echo "[run] 已停止"
|
||
}
|
||
trap cleanup SIGINT SIGTERM
|
||
|
||
wait "${SERVER_PID}" 2>/dev/null || true
|