셸 스크립트 안정성 개선 (실행 흐름 변경 없음)

- 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>
This commit is contained in:
MyeonghoeLee 2026-03-31 11:17:09 +09:00
parent 71882ec684
commit 5f5435cec7
5 changed files with 25 additions and 6 deletions

View File

@ -58,7 +58,13 @@ fi
if ! brew services list | grep ollama | grep -q started; then if ! brew services list | grep ollama | grep -q started; then
brew services start ollama brew services start ollama
sleep 3 echo " Ollama 시작 대기 중..."
for i in $(seq 1 15); do
if curl -s http://localhost:11434/ > /dev/null 2>&1; then
break
fi
sleep 1
done
echo " ✓ Ollama 서비스 시작" echo " ✓ Ollama 서비스 시작"
else else
echo " ✓ Ollama 서비스 실행 중" echo " ✓ Ollama 서비스 실행 중"

View File

@ -47,6 +47,7 @@ if command -v nvidia-smi &>/dev/null; then
if nvidia-smi &>/dev/null; then if nvidia-smi &>/dev/null; then
HAS_NVIDIA_GPU=true HAS_NVIDIA_GPU=true
VRAM_MB=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits 2>/dev/null | head -1) VRAM_MB=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits 2>/dev/null | head -1)
VRAM_MB=${VRAM_MB:-0}
VRAM_GB=$((VRAM_MB / 1024)) VRAM_GB=$((VRAM_MB / 1024))
fi fi
fi fi

View File

@ -13,7 +13,7 @@ echo "============================================"
echo "" echo ""
# Open WebUI 컨테이너 종료 # Open WebUI 컨테이너 종료
if docker ps -q --filter name=open-webui-mlx | grep -q .; then if docker ps -q --filter name=open-webui-mlx 2>/dev/null | grep -q .; then
cd "$PROJECT_DIR" cd "$PROJECT_DIR"
docker compose -f docker-compose.mlx.yml down 2>&1 | grep -v "^$" docker compose -f docker-compose.mlx.yml down 2>&1 | grep -v "^$"
echo " ✓ Open WebUI 종료" echo " ✓ Open WebUI 종료"
@ -24,7 +24,13 @@ fi
# vllm-mlx 서버 종료 # vllm-mlx 서버 종료
PIDS=$(lsof -ti :$PORT 2>/dev/null || true) PIDS=$(lsof -ti :$PORT 2>/dev/null || true)
if [ -n "$PIDS" ]; then if [ -n "$PIDS" ]; then
echo "$PIDS" | xargs kill -9 2>/dev/null || true echo "$PIDS" | xargs kill -15 2>/dev/null || true
sleep 2
# 아직 살아있으면 강제 종료
REMAINING=$(lsof -ti :$PORT 2>/dev/null || true)
if [ -n "$REMAINING" ]; then
echo "$REMAINING" | xargs kill -9 2>/dev/null || true
fi
echo " ✓ vllm-mlx 서버 종료 (포트 $PORT)" echo " ✓ vllm-mlx 서버 종료 (포트 $PORT)"
else else
echo " - vllm-mlx 서버 없음 (이미 종료됨)" echo " - vllm-mlx 서버 없음 (이미 종료됨)"

View File

@ -12,7 +12,7 @@ echo "============================================"
echo "" echo ""
# Open WebUI 컨테이너 종료 # Open WebUI 컨테이너 종료
if docker ps -q --filter name=open-webui | grep -q .; then if docker ps -q --filter name=open-webui 2>/dev/null | grep -q .; then
cd "$PROJECT_DIR" cd "$PROJECT_DIR"
docker compose down 2>&1 | grep -v "^$" docker compose down 2>&1 | grep -v "^$"
echo " ✓ Open WebUI 종료" echo " ✓ Open WebUI 종료"
@ -21,7 +21,7 @@ else
fi fi
# Ollama 서비스 종료 # Ollama 서비스 종료
if brew services list 2>/dev/null | grep ollama | grep -q started; then if command -v brew &>/dev/null && brew services list 2>/dev/null | grep ollama | grep -q started; then
brew services stop ollama brew services stop ollama
echo " ✓ Ollama 서비스 종료" echo " ✓ Ollama 서비스 종료"
else else

View File

@ -34,7 +34,13 @@ fi
PIDS=$(lsof -ti :8090 2>/dev/null || true) PIDS=$(lsof -ti :8090 2>/dev/null || true)
if [ -n "$PIDS" ]; then if [ -n "$PIDS" ]; then
echo " [MLX] vllm-mlx 서버 감지됨 → 종료 중..." echo " [MLX] vllm-mlx 서버 감지됨 → 종료 중..."
echo "$PIDS" | xargs kill -9 2>/dev/null || true 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 서버 종료" echo " ✓ vllm-mlx 서버 종료"
STOPPED=true STOPPED=true
fi fi