openwebui/stop.sh
MyeonghoeLee 5f5435cec7 셸 스크립트 안정성 개선 (실행 흐름 변경 없음)
- stop.sh/stop-mlx.sh: kill -9 → SIGTERM 후 2초 대기, 미종료 시 SIGKILL fallback
- stop-mlx.sh/stop-ollama.sh: docker ps에 2>/dev/null 추가 (Docker 미실행 시 에러 억제)
- stop-ollama.sh: brew 명령어 존재 여부 체크 추가
- setup.sh: VRAM_MB 빈 값 방어 코드 추가 (set -e 크래시 방지)
- setup-ollama.sh: sleep 3 → 최대 15초 readiness 체크 루프로 교체

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:17:09 +09:00

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 ""