Files
railwaysystem/start-local.sh

69 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# 智慧培训管理系统 本地一键启动脚本(含 Tailscale 跳板机数据库隧道自动打通)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "=== 1. 检查并建立 Kingbase 数据库 SSH 隧道 (通过 100.70.157.41) ==="
if nc -zv -G 1 127.0.0.1 4321 >/dev/null 2>&1; then
echo "数据库隧道已就绪 (127.0.0.1:4321)。"
else
echo "正在通过 wzbmatebook (100.70.157.41) 建立 4321 端口隧道..."
pkill -f "ssh.*4321:192.168.139.218:4321" 2>/dev/null
nohup ssh -f -N -L 4321:192.168.139.218:4321 -o ExitOnForwardFailure=yes -o ServerAliveInterval=15 -o ServerAliveCountMax=3 wzbmatebook > /dev/null 2>&1
sleep 1
if nc -zv -G 2 127.0.0.1 4321 >/dev/null 2>&1; then
echo "数据库隧道建立成功!"
else
echo "警告:隧道建立异常,请检查与 100.70.157.41 的连通性。"
fi
fi
echo ""
echo "=== 2. 检查并启动 Redis 服务 ==="
if redis-cli ping >/dev/null 2>&1; then
echo "Redis 已在运行。"
else
echo "正在启动 Redis..."
/opt/homebrew/opt/redis/bin/redis-server --daemonize yes
sleep 1
if redis-cli ping >/dev/null 2>&1; then
echo "Redis 启动成功!"
else
echo "警告:Redis 启动可能失败,请检查。"
fi
fi
echo ""
echo "=== 3. 检查后端服务 (8090) ==="
if curl -s http://localhost:8090/captchaImage >/dev/null 2>&1; then
echo "后端服务已在运行 (端口 8090)。"
else
echo "正在启动后端服务 (ruoyi-admin)..."
mkdir -p "$SCRIPT_DIR/uploadPath"
nohup java --add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.lang.reflect=ALL-UNNAMED \
--add-opens java.base/java.util=ALL-UNNAMED \
-jar "$SCRIPT_DIR/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar" \
> "$SCRIPT_DIR/RuoYi-Vue/ruoyi-admin/backend.log" 2>&1 &
echo "后端已在后台启动,PID: $!,日志写入 RuoYi-Vue/ruoyi-admin/backend.log"
echo "等待后端就绪..."
for i in {1..30}; do
if curl -s http://localhost:8090/captchaImage | grep -q "200"; then
echo "后端已就绪!"
break
fi
sleep 1
done
fi
echo ""
echo "=== 4. 检查前端服务 (8080) ==="
if curl -s http://localhost:8080 >/dev/null 2>&1; then
echo "前端服务已在运行 (http://localhost:8080)。"
else
echo "正在启动前端服务 (build_ui)..."
cd "$SCRIPT_DIR/build_ui"
npm run dev
fi