#!/usr/bin/env bash # `npm run dev` öncesi: önceki oturumdan yetim kalmış backend (8080) varsa kapat. # concurrently -k, cargo watch'ı durdurur ama `cargo run`'ın başlattığı kakeibo süreci bazen # sinyali almaz ve portu tutmaya devam eder → yeni sürüm açılamaz, eski kod çalışır. # Yalnızca süreç adı "kakeibo" ise kapatır; başka bir uygulamaya dokunmaz. PORT="${1:-8080}" for pid in $(ss -ltnpH "sport = :$PORT" 2>/dev/null | grep -o 'pid=[0-9]*' | cut -d= -f2 | sort -u); do name=$(cat "/proc/$pid/comm" 2>/dev/null) if [ "$name" = "kakeibo" ]; then echo "Eski backend kapatılıyor (pid $pid, port $PORT)" kill "$pid" 2>/dev/null for _ in 1 2 3 4 5 6 7 8 9 10; do kill -0 "$pid" 2>/dev/null || break; sleep 0.3; done else echo "Uyarı: $PORT portunu başka bir uygulama kullanıyor ($name, pid $pid); dokunulmadı." >&2 fi done exit 0