#!/bin/bash # # Stop Visual Workflow Builder - Full Stack # # This script stops both backend (Flask) and frontend (React) servers # SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Colors for output GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo "==========================================" echo "Visual Workflow Builder - Stop All" echo "==========================================" BACKEND_STOPPED=0 FRONTEND_STOPPED=0 # Stop Frontend if [ -d "$SCRIPT_DIR/frontend" ] && [ -f "$SCRIPT_DIR/frontend/stop.sh" ]; then echo -e "${BLUE}Stopping Frontend...${NC}" cd "$SCRIPT_DIR/frontend" ./stop.sh FRONTEND_STOPPED=1 else # Try to kill any process on port 3000 echo -e "${BLUE}Checking for processes on port 3000...${NC}" FRONTEND_PIDS=$(lsof -ti:3000 2>/dev/null) if [ ! -z "$FRONTEND_PIDS" ]; then echo "Killing processes on port 3000: $FRONTEND_PIDS" kill $FRONTEND_PIDS 2>/dev/null sleep 1 kill -9 $FRONTEND_PIDS 2>/dev/null FRONTEND_STOPPED=1 fi fi # Stop Backend if [ -f "$SCRIPT_DIR/backend/stop.sh" ]; then echo "" echo -e "${BLUE}Stopping Backend...${NC}" cd "$SCRIPT_DIR/backend" ./stop.sh BACKEND_STOPPED=1 else # Try to kill any process on port 5001 echo -e "${BLUE}Checking for processes on port 5001...${NC}" BACKEND_PIDS=$(lsof -ti:5001 2>/dev/null) if [ ! -z "$BACKEND_PIDS" ]; then echo "Killing processes on port 5001: $BACKEND_PIDS" kill $BACKEND_PIDS 2>/dev/null sleep 1 kill -9 $BACKEND_PIDS 2>/dev/null BACKEND_STOPPED=1 fi fi echo "" echo "==========================================" if [ $BACKEND_STOPPED -eq 1 ] || [ $FRONTEND_STOPPED -eq 1 ]; then echo -e "${GREEN}✓ Services Stopped${NC}" else echo -e "${YELLOW}No services were running${NC}" fi echo "=========================================="