复现已有算法
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
# =====================================================
|
||||
# run.sh — 打包并前台运行 wind_power(后端托管前端 SPA)
|
||||
#
|
||||
# 流程:package.sh 打包 → 从 runtime/wind_power/ 启动 wind_server
|
||||
# (后端同时提供 /api 与 SPA 静态资源,即“前后端一起跑”)
|
||||
#
|
||||
# 开发模式前端热更新:
|
||||
# ./run.sh # 后端托管生产前端,监听 :8848
|
||||
# cd frontend/web_app && npm run dev # 前端 dev :5173,/api 代理到 :8848
|
||||
#
|
||||
# 参考: 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:8848 (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
|
||||
Reference in New Issue
Block a user