69 lines
2.3 KiB
Bash
Executable File
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
|