#!/bin/bash # ============================================================ # Project Jarvis — Stop Script # Stops all Jarvis services. # ============================================================ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" PID_DIR="$PROJECT_DIR/.pids" # Colors GREEN='\033[0;32m' YELLOW='\033[1;33m' CYAN='\033[0;36m' RED='\033[0;31m' NC='\033[0m' echo "" echo -e "${CYAN}Stopping Jarvis services...${NC}" echo "" # Stop backend if [ -f "$PID_DIR/backend.pid" ]; then PID=$(cat "$PID_DIR/backend.pid") if kill -0 "$PID" 2>/dev/null; then kill "$PID" 2>/dev/null echo -e " ${GREEN}✓${NC} Backend stopped (PID: $PID)" else echo -e " ${YELLOW}—${NC} Backend was not running" fi rm -f "$PID_DIR/backend.pid" else # Try to find and kill by port PID=$(lsof -ti:7777 2>/dev/null) if [ -n "$PID" ]; then kill $PID 2>/dev/null echo -e " ${GREEN}✓${NC} Backend stopped (PID: $PID)" else echo -e " ${YELLOW}—${NC} Backend was not running" fi fi # Stop GUI (HUD) if [ -f "$PID_DIR/gui.pid" ]; then PID=$(cat "$PID_DIR/gui.pid") if kill -0 "$PID" 2>/dev/null; then kill "$PID" 2>/dev/null echo -e " ${GREEN}✓${NC} Sovereign HUD stopped (PID: $PID)" fi rm -f "$PID_DIR/gui.pid" else pkill -f "friday_gui.py" 2>/dev/null echo -e " ${GREEN}✓${NC} Sovereign HUD cleared" fi # Definitive Cleanup pkill -f "main:app" 2>/dev/null pkill -f "uvicorn" 2>/dev/null echo "" echo -e "${GREEN}F.R.I.D.A.Y. is now Offline.${NC}" echo "" # Note: We don't stop Ollama as it might be used by other apps echo -e " ${YELLOW}ℹ${NC} Ollama left running (shared service)" echo "" echo -e "${GREEN}Jarvis stopped.${NC}" echo ""