Blame view

scripts/stop.sh 1.44 KB
e7f2b240   tangwang   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  #!/usr/bin/env bash
  # =============================================================================
  # OmniShopAgent - 停止脚本
  # 停止 Streamlit 进程及 Milvus 容器
  # =============================================================================
  set -euo pipefail
  
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
  STREAMLIT_PORT="${STREAMLIT_PORT:-8501}"
  
  echo "=========================================="
  echo "OmniShopAgent 停止"
  echo "=========================================="
  
  # 1. 停止 Streamlit 进程
  echo "[1/2] 停止 Streamlit..."
  if pgrep -f "streamlit run app.py" >/dev/null 2>&1; then
      pkill -f "streamlit run app.py" 2>/dev/null || true
      echo "  Streamlit 已停止"
  else
      echo "  Streamlit 未在运行"
  fi
  
  # 按端口查找并终止
  if command -v lsof &>/dev/null; then
      PID=$(lsof -ti:$STREAMLIT_PORT 2>/dev/null || true)
      if [ -n "$PID" ]; then
          kill $PID 2>/dev/null || true
          echo "  已终止端口 $STREAMLIT_PORT 上的进程"
      fi
  fi
  
  # 2. 可选:停止 Milvus 容器
  echo "[2/2] 停止 Milvus..."
  if command -v docker &>/dev/null; then
      cd "$PROJECT_ROOT"
      docker compose down 2>/dev/null || docker-compose down 2>/dev/null || true
      echo "  Milvus 已停止"
  else
      echo "  Docker 未安装,跳过"
  fi
  
  echo "=========================================="
  echo "OmniShopAgent 已停止"
  echo "=========================================="