119 lines
3.3 KiB
Bash
119 lines
3.3 KiB
Bash
#!/bin/bash
|
||
|
||
# 社区生鲜团购系统启动脚本
|
||
|
||
echo "========================================="
|
||
echo " 社区生鲜团购系统启动脚本 v1.0 "
|
||
echo "========================================="
|
||
echo ""
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 检查Java环境
|
||
echo -e "${YELLOW}[1/4] 检查Java环境...${NC}"
|
||
if ! command -v java &> /dev/null; then
|
||
echo -e "${RED}❌ Java未安装,请先安装JDK 1.8+${NC}"
|
||
exit 1
|
||
fi
|
||
echo -e "${GREEN}✅ Java环境正常${NC}"
|
||
|
||
# 检查Node环境
|
||
echo -e "${YELLOW}[2/4] 检查Node环境...${NC}"
|
||
if ! command -v node &> /dev/null; then
|
||
echo -e "${RED}❌ Node.js未安装,请先安装Node.js 16+${NC}"
|
||
exit 1
|
||
fi
|
||
echo -e "${GREEN}✅ Node环境正常${NC}"
|
||
|
||
# 启动后端
|
||
echo ""
|
||
echo -e "${YELLOW}[3/4] 启动Spring Boot后端...${NC}"
|
||
cd "$(dirname "$0")"
|
||
|
||
# 检查8080端口是否被占用
|
||
if lsof -Pi :8080 -sTCP:LISTEN -t >/dev/null ; then
|
||
echo -e "${YELLOW}⚠️ 端口8080已被占用,尝试停止现有服务...${NC}"
|
||
kill -9 $(lsof -t -i:8080) 2>/dev/null
|
||
sleep 2
|
||
fi
|
||
|
||
# 启动后端(后台运行)
|
||
echo "正在启动后端服务..."
|
||
nohup mvn spring-boot:run > logs/backend.log 2>&1 &
|
||
BACKEND_PID=$!
|
||
echo "后端PID: $BACKEND_PID"
|
||
|
||
# 等待后端启动
|
||
echo "等待后端服务启动..."
|
||
for i in {1..30}; do
|
||
if curl -s http://localhost:8080/actuator/health > /dev/null 2>&1; then
|
||
echo -e "${GREEN}✅ 后端服务启动成功!${NC}"
|
||
break
|
||
fi
|
||
if [ $i -eq 30 ]; then
|
||
echo -e "${RED}❌ 后端服务启动超时,请检查日志: logs/backend.log${NC}"
|
||
exit 1
|
||
fi
|
||
sleep 1
|
||
echo -n "."
|
||
done
|
||
|
||
# 启动前端
|
||
echo ""
|
||
echo -e "${YELLOW}[4/4] 启动Vue前端...${NC}"
|
||
cd community-fresh-group-buy-frontend
|
||
|
||
# 检查依赖
|
||
if [ ! -d "node_modules" ]; then
|
||
echo "安装前端依赖..."
|
||
npm install --cache /tmp/npm-cache
|
||
fi
|
||
|
||
# 检查3000端口
|
||
if lsof -Pi :3000 -sTCP:LISTEN -t >/dev/null ; then
|
||
echo -e "${YELLOW}⚠️ 端口3000已被占用,使用其他端口...${NC}"
|
||
fi
|
||
|
||
# 启动前端(后台运行)
|
||
echo "正在启动前端服务..."
|
||
nohup npm run dev > ../logs/frontend.log 2>&1 &
|
||
FRONTEND_PID=$!
|
||
echo "前端PID: $FRONTEND_PID"
|
||
|
||
# 等待前端启动
|
||
sleep 3
|
||
|
||
# 显示访问信息
|
||
echo ""
|
||
echo "========================================="
|
||
echo -e "${GREEN}✅ 系统启动完成!${NC}"
|
||
echo "========================================="
|
||
echo ""
|
||
echo "访问地址:"
|
||
echo -e " 前端应用: ${GREEN}http://localhost:3000${NC} 或 ${GREEN}http://localhost:3001${NC}"
|
||
echo -e " 后端API: ${GREEN}http://localhost:8080${NC}"
|
||
echo -e " API文档: ${GREEN}http://localhost:8080/doc.html${NC}"
|
||
echo ""
|
||
echo "测试账号:"
|
||
echo " 普通用户: user / 123456"
|
||
echo " 管理员: admin / 123456"
|
||
echo ""
|
||
echo "停止服务:"
|
||
echo " 后端PID: $BACKEND_PID (kill $BACKEND_PID)"
|
||
echo " 前端PID: $FRONTEND_PID (kill $FRONTEND_PID)"
|
||
echo ""
|
||
echo "查看日志:"
|
||
echo " 后端日志: tail -f logs/backend.log"
|
||
echo " 前端日志: tail -f logs/frontend.log"
|
||
echo ""
|
||
echo "========================================="
|
||
|
||
# 保存PID到文件
|
||
echo "$BACKEND_PID" > .backend.pid
|
||
echo "$FRONTEND_PID" > .frontend.pid
|
||
|
||
echo -e "${YELLOW}提示: 使用 ./stop-system.sh 停止所有服务${NC}" |