#!/bin/bash # Einfacher Lock-Mechanismus ohne störende Ausgaben LOCK_FILE="/tmp/kill-dev-processes.lock" # Prüfe auf bereits laufende Instanz if [ -f "$LOCK_FILE" ]; then # Prüfe ob Prozess tatsächlich noch läuft if [ -f "$LOCK_FILE" ] && kill -0 $(cat "$LOCK_FILE") 2>/dev/null; then # Stilles Beenden wenn bereits aktiv exit 0 else # Aufräumen alter Lock-Dateien rm -f "$LOCK_FILE" 2>/dev/null fi fi # Erstelle Lock-File mit aktueller PID echo $$ > "$LOCK_FILE" trap "rm -f $LOCK_FILE 2>/dev/null" EXIT echo "🛑 Beende alle Development-Prozesse..." echo "" # Finde alle Development-Prozesse FRONTEND_PIDS=$(ps aux | grep -E 'npm start|react-scripts' | grep -v grep | awk '{print $2}') BACKEND_PIDS=$(ps aux | grep 'ts-node-dev' | grep -v grep | awk '{print $2}') echo "Frontend-Prozesse (PIDs): $FRONTEND_PIDS" echo "Backend-Prozesse (PIDs): $BACKEND_PIDS" echo "" # Beende Frontend-Prozesse if [ ! -z "$FRONTEND_PIDS" ]; then echo "Beende Frontend-Prozesse..." echo $FRONTEND_PIDS | xargs kill -TERM 2>/dev/null sleep 2 echo $FRONTEND_PIDS | xargs kill -KILL 2>/dev/null echo "✅ Frontend-Prozesse beendet" else echo "❌ Keine Frontend-Prozesse gefunden" fi # Beende Backend-Prozesse if [ ! -z "$BACKEND_PIDS" ]; then echo "Beende Backend-Prozesse..." echo $BACKEND_PIDS | xargs kill -TERM 2>/dev/null sleep 1 echo $BACKEND_PIDS | xargs kill -KILL 2>/dev/null echo "✅ Backend-Prozesse beendet" else echo "❌ Keine Backend-Prozesse gefunden" fi echo "" echo "Verbleibende Development-Prozesse:" ps aux | grep -E 'npm start|react-scripts|ts-node-dev' | grep -v grep || echo "✅ Keine Development-Prozesse mehr vorhanden"