#!/bin/bash #==================================================================== # 통합 종료 — 실행 중인 서비스를 자동 감지하여 종료 #==================================================================== PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)" STOPPED=false echo "============================================" echo " Open WebUI 서비스 종료" echo "============================================" echo "" # vLLM 컨테이너 확인 if docker ps -q --filter name=vllm-server 2>/dev/null | grep -q .; then echo " [vLLM] 감지됨 → 종료 중..." cd "$PROJECT_DIR" docker compose -f docker-compose.vllm.yml down 2>&1 | grep -v "^$" echo " ✓ vLLM + Open WebUI 종료" STOPPED=true fi # MLX Open WebUI 컨테이너 확인 if docker ps -q --filter name=open-webui-mlx 2>/dev/null | grep -q .; then echo " [MLX] Open WebUI 감지됨 → 종료 중..." cd "$PROJECT_DIR" docker compose -f docker-compose.mlx.yml down 2>&1 | grep -v "^$" echo " ✓ Open WebUI (MLX) 종료" STOPPED=true fi # MLX vllm-mlx 서버 확인 PIDS=$(lsof -ti :8090 2>/dev/null || true) if [ -n "$PIDS" ]; then echo " [MLX] vllm-mlx 서버 감지됨 → 종료 중..." echo "$PIDS" | xargs kill -15 2>/dev/null || true sleep 2 # 아직 살아있으면 강제 종료 REMAINING=$(lsof -ti :8090 2>/dev/null || true) if [ -n "$REMAINING" ]; then echo "$REMAINING" | xargs kill -9 2>/dev/null || true fi echo " ✓ vllm-mlx 서버 종료" STOPPED=true fi # MLX 로그 파일 정리 if [ -f "$PROJECT_DIR/vllm-mlx.log" ]; then rm "$PROJECT_DIR/vllm-mlx.log" echo " ✓ MLX 로그 파일 정리" fi # Ollama Open WebUI 컨테이너 확인 if docker ps -q --filter name=open-webui 2>/dev/null | grep -q .; then # open-webui-mlx나 open-webui-vllm이 아닌 경우만 if ! docker ps -q --filter name=open-webui-mlx 2>/dev/null | grep -q . && \ ! docker ps -q --filter name=open-webui-vllm 2>/dev/null | grep -q .; then echo " [Ollama] Open WebUI 감지됨 → 종료 중..." cd "$PROJECT_DIR" docker compose down 2>&1 | grep -v "^$" echo " ✓ Open WebUI (Ollama) 종료" STOPPED=true fi fi # Ollama 서비스 확인 if command -v brew &>/dev/null && brew services list 2>/dev/null | grep ollama | grep -q started; then echo " [Ollama] 서비스 감지됨 → 종료 중..." brew services stop ollama echo " ✓ Ollama 서비스 종료" STOPPED=true fi if [ "$STOPPED" = false ]; then echo " 실행 중인 서비스가 없습니다." fi echo "" echo " 완료. 재시작하려면: ./setup.sh" echo ""