Blame view

run.sh 3.49 KB
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
1
2
  #!/bin/bash
  
a7653f3c   tangwang   补充脚本
3
4
  # Production startup script for SearchEngine services
  # This script starts frontend and backend services (no data ingestion)
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
5
6
7
8
9
10
11
12
13
  
  cd "$(dirname "$0")"
  
  GREEN='\033[0;32m'
  YELLOW='\033[1;33m'
  RED='\033[0;31m'
  NC='\033[0m'
  
  echo -e "${GREEN}========================================${NC}"
a7653f3c   tangwang   补充脚本
14
  echo -e "${GREEN}SearchEngine服务启动脚本${NC}"
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
15
16
  echo -e "${GREEN}========================================${NC}"
  
a7653f3c   tangwang   补充脚本
17
18
  # Create logs directory if it doesn't exist
  mkdir -p logs
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
19
  
a7653f3c   tangwang   补充脚本
20
21
  # Step 1: Start backend in background
  echo -e "\n${YELLOW}Step 1/2: 启动后端服务${NC}"
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
22
  echo -e "${YELLOW}后端服务将在后台运行...${NC}"
a7653f3c   tangwang   补充脚本
23
  
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
24
25
26
27
28
29
30
31
  nohup ./scripts/start_backend.sh > logs/backend.log 2>&1 &
  BACKEND_PID=$!
  echo $BACKEND_PID > logs/backend.pid
  echo -e "${GREEN}后端服务已启动 (PID: $BACKEND_PID)${NC}"
  echo -e "${GREEN}日志文件: logs/backend.log${NC}"
  
  # Wait for backend to start
  echo -e "${YELLOW}等待后端服务启动...${NC}"
a7653f3c   tangwang   补充脚本
32
  MAX_RETRIES=30
a406638e   tangwang   up
33
34
35
36
37
38
39
40
41
42
43
44
  RETRY_COUNT=0
  BACKEND_READY=false
  
  while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
      sleep 2
      if curl -s http://localhost:6002/ > /dev/null 2>&1; then
          BACKEND_READY=true
          break
      fi
      RETRY_COUNT=$((RETRY_COUNT + 1))
      echo -e "${YELLOW}  等待中... ($RETRY_COUNT/$MAX_RETRIES)${NC}"
  done
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
45
46
  
  # Check if backend is running
a406638e   tangwang   up
47
  if [ "$BACKEND_READY" = true ]; then
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
48
      echo -e "${GREEN}✓ 后端服务运行正常${NC}"
a7653f3c   tangwang   补充脚本
49
      # Try health check
a406638e   tangwang   up
50
51
52
53
54
      if curl -s http://localhost:6002/admin/health > /dev/null 2>&1; then
          echo -e "${GREEN}✓ 健康检查通过${NC}"
      else
          echo -e "${YELLOW}⚠ 健康检查未通过,但服务已启动${NC}"
      fi
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
55
56
  else
      echo -e "${RED}✗ 后端服务启动失败,请检查日志: logs/backend.log${NC}"
a406638e   tangwang   up
57
      echo -e "${YELLOW}提示: 后端服务可能需要更多时间启动,或者检查端口是否被占用${NC}"
a7653f3c   tangwang   补充脚本
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
      exit 1
  fi
  
  # Step 2: Start frontend in background
  echo -e "\n${YELLOW}Step 2/2: 启动前端服务${NC}"
  echo -e "${YELLOW}前端服务将在后台运行...${NC}"
  
  nohup ./scripts/start_frontend.sh > logs/frontend.log 2>&1 &
  FRONTEND_PID=$!
  echo $FRONTEND_PID > logs/frontend.pid
  echo -e "${GREEN}前端服务已启动 (PID: $FRONTEND_PID)${NC}"
  echo -e "${GREEN}日志文件: logs/frontend.log${NC}"
  
  # Wait for frontend to start
  echo -e "${YELLOW}等待前端服务启动...${NC}"
  MAX_RETRIES=15
  RETRY_COUNT=0
  FRONTEND_READY=false
  
  while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
      sleep 2
      if curl -s http://localhost:6003/ > /dev/null 2>&1; then
          FRONTEND_READY=true
          break
      fi
      RETRY_COUNT=$((RETRY_COUNT + 1))
      echo -e "${YELLOW}  等待中... ($RETRY_COUNT/$MAX_RETRIES)${NC}"
  done
  
  # Check if frontend is running
  if [ "$FRONTEND_READY" = true ]; then
      echo -e "${GREEN}✓ 前端服务运行正常${NC}"
  else
      echo -e "${YELLOW}⚠ 前端服务可能还在启动中,请稍后访问${NC}"
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
92
93
  fi
  
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
94
95
96
97
98
  echo -e "${GREEN}========================================${NC}"
  echo -e "${GREEN}所有服务启动完成!${NC}"
  echo -e "${GREEN}========================================${NC}"
  echo ""
  echo -e "访问地址:"
2a76641e   tangwang   config
99
100
101
  echo -e "  ${GREEN}前端界面: http://localhost:6003${NC}"
  echo -e "  ${GREEN}后端API: http://localhost:6002${NC}"
  echo -e "  ${GREEN}API文档: http://localhost:6002/docs${NC}"
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
102
103
104
  echo ""
  echo -e "日志文件:"
  echo -e "  后端: logs/backend.log"
a7653f3c   tangwang   补充脚本
105
  echo -e "  前端: logs/frontend.log"
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
106
107
  echo ""
  echo -e "停止服务:"
a7653f3c   tangwang   补充脚本
108
109
110
111
  echo -e "  所有服务: ./stop.sh"
  echo -e "  单独停止后端: kill \$(cat logs/backend.pid)"
  echo -e "  单独停止前端: kill \$(cat logs/frontend.pid)"
  echo ""