#!/bin/bash # # Script de vérification du port pour le dashboard RPA Vision V3 # Vérifie si le port 5001 est disponible et propose des alternatives # set -e # Couleurs GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' echo "╔══════════════════════════════════════════════════════════════╗" echo "║ VÉRIFICATION DES PORTS - DASHBOARD RPA VISION V3 ║" echo "╚══════════════════════════════════════════════════════════════╝" echo "" # Port par défaut DEFAULT_PORT=5001 # Fonction pour vérifier si un port est utilisé check_port() { local port=$1 if ss -tuln | grep -q ":${port} "; then return 1 # Port occupé else return 0 # Port libre fi } # Fonction pour trouver le processus utilisant un port get_process_on_port() { local port=$1 lsof -i :${port} 2>/dev/null | grep LISTEN | awk '{print $2}' | head -1 } # Vérifier le port par défaut (5001) echo -e "${YELLOW}[1/3]${NC} Vérification du port ${DEFAULT_PORT}..." if check_port ${DEFAULT_PORT}; then echo -e "${GREEN}✓${NC} Port ${DEFAULT_PORT} disponible" PORT_STATUS="available" else echo -e "${RED}✗${NC} Port ${DEFAULT_PORT} occupé" PID=$(get_process_on_port ${DEFAULT_PORT}) if [ -n "$PID" ]; then PROCESS=$(ps -p $PID -o comm= 2>/dev/null || echo "inconnu") echo -e " Processus: ${PROCESS} (PID: ${PID})" echo -e " Commande: ${YELLOW}kill ${PID}${NC} pour libérer le port" fi PORT_STATUS="occupied" fi # Vérifier les ports alternatifs echo "" echo -e "${YELLOW}[2/3]${NC} Vérification des ports alternatifs..." ALTERNATIVE_PORTS=(5000 3000 8000 8080 8888 9000) AVAILABLE_PORTS=() for port in "${ALTERNATIVE_PORTS[@]}"; do if check_port $port; then echo -e "${GREEN}✓${NC} Port ${port} disponible" AVAILABLE_PORTS+=($port) else echo -e "${RED}✗${NC} Port ${port} occupé" fi done # Résumé et recommandations echo "" echo -e "${YELLOW}[3/3]${NC} Résumé et recommandations..." echo "" if [ "$PORT_STATUS" = "available" ]; then echo -e "${GREEN}✅ PRÊT${NC} - Le port par défaut (${DEFAULT_PORT}) est disponible" echo "" echo "Lancement du dashboard:" echo -e " ${GREEN}cd rpa_vision_v3${NC}" echo -e " ${GREEN}./run.sh --dashboard${NC}" echo "" echo "Accès: http://localhost:${DEFAULT_PORT}" else echo -e "${YELLOW}⚠️ ATTENTION${NC} - Le port ${DEFAULT_PORT} est occupé" echo "" if [ ${#AVAILABLE_PORTS[@]} -gt 0 ]; then echo "Ports alternatifs disponibles:" for port in "${AVAILABLE_PORTS[@]}"; do echo -e " • Port ${port}: ${GREEN}disponible${NC}" done echo "" echo "Pour utiliser un port alternatif:" echo -e " ${YELLOW}export FLASK_PORT=${AVAILABLE_PORTS[0]}${NC}" echo -e " ${YELLOW}cd rpa_vision_v3${NC}" echo -e " ${YELLOW}./run.sh --dashboard${NC}" echo "" echo "Ou modifier web_dashboard/app.py ligne 165:" echo -e " ${YELLOW}app.run(debug=True, host='0.0.0.0', port=${AVAILABLE_PORTS[0]})${NC}" else echo -e "${RED}❌ PROBLÈME${NC} - Aucun port web standard n'est disponible" echo "" echo "Actions recommandées:" echo " 1. Arrêter les serveurs web inutilisés" echo " 2. Vérifier les processus: ps aux | grep python" echo " 3. Libérer le port 5001: kill \$(lsof -t -i:5001)" fi fi echo "" echo "╔══════════════════════════════════════════════════════════════╗" echo "║ VÉRIFICATION TERMINÉE ║" echo "╚══════════════════════════════════════════════════════════════╝"