82 lines
2.6 KiB
Bash
Executable File
82 lines
2.6 KiB
Bash
Executable File
#!/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 ""
|