#!/bin/bash # Foxhunt HFT System - Graceful Shutdown Sequence # Stops all services in reverse dependency order # Color codes RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo "================================================================================" echo " Foxhunt HFT System - Shutdown Sequence" echo "================================================================================" echo "Timestamp: $(date '+%Y-%m-%d %H:%M:%S')" echo "" # Function to stop and verify stop_service() { local service_name=$1 echo -n " Stopping $service_name..." if docker-compose stop "$service_name" 2>/dev/null; then echo -e " ${GREEN}OK${NC}" return 0 else echo -e " ${YELLOW}skipped${NC}" return 1 fi } # Layer 3: Stop API Gateway first (client-facing) echo -e "${BLUE}[1/4] Stopping API Gateway...${NC}" stop_service "api_gateway" echo "" # Layer 2: Stop core services echo -e "${BLUE}[2/4] Stopping Core Services...${NC}" stop_service "trading_service" stop_service "backtesting_service" stop_service "ml_training_service" echo "" # Layer 1: Stop infrastructure echo -e "${BLUE}[3/4] Stopping Infrastructure...${NC}" stop_service "postgres" stop_service "redis" stop_service "vault" stop_service "influxdb" echo "" # Stop monitoring echo -e "${BLUE}[4/4] Stopping Monitoring...${NC}" stop_service "prometheus" stop_service "grafana" stop_service "alertmanager" echo "" # Verify all stopped echo "Verifying shutdown..." RUNNING=$(docker-compose ps --filter "status=running" 2>/dev/null | grep -c "Up" || echo "0") if [ "$RUNNING" -eq 0 ]; then echo -e "${GREEN}✓ All services stopped successfully${NC}" else echo -e "${YELLOW}⚠ $RUNNING services still running${NC}" docker-compose ps --filter "status=running" fi echo "" echo "================================================================================" echo -e "${GREEN}✓ Foxhunt HFT System Shutdown Complete${NC}" echo "================================================================================" echo "" echo "Final Status:" docker-compose ps echo "" echo "To restart:" echo " ./scripts/start_foxhunt.sh" echo "" echo "To fully clean (removes volumes):" echo " docker-compose down -v" echo "" echo "================================================================================"