#!/bin/bash # Script de redĂ©marrage des services RPA Vision V3 set -e echo "🔄 RPA Vision V3 - RedĂ©marrage des Services" echo "===========================================" echo "" # VĂ©rifier qu'on est bien root ou avec sudo if [ "$EUID" -ne 0 ]; then echo "❌ Ce script doit ĂȘtre exĂ©cutĂ© avec sudo" echo "Usage: sudo bash restart_services.sh" exit 1 fi SERVICES=( "rpa-vision-v3-api.service" "rpa-vision-v3-worker.service" "rpa-vision-v3-dashboard.service" ) echo "📋 Services Ă  redĂ©marrer:" for service in "${SERVICES[@]}"; do echo " - $service" done echo "" # ArrĂȘter tous les services echo "âč ArrĂȘt des services..." for service in "${SERVICES[@]}"; do echo -n " → ArrĂȘt de $service... " if systemctl stop "$service" 2>/dev/null; then echo "✓" else echo "⚠ (peut-ĂȘtre dĂ©jĂ  arrĂȘtĂ©)" fi done echo "" # Attendre un peu pour que les processus se terminent proprement echo "⏳ Attente de 3 secondes..." sleep 3 echo "" # DĂ©marrer tous les services echo "▶ DĂ©marrage des services..." for service in "${SERVICES[@]}"; do echo -n " → DĂ©marrage de $service... " if systemctl start "$service" 2>/dev/null; then echo "✓" else echo "❌ ERREUR" fi done echo "" # Attendre que les services dĂ©marrent echo "⏳ Attente du dĂ©marrage (5 secondes)..." sleep 5 echo "" # VĂ©rifier le statut de chaque service echo "📊 Statut des services aprĂšs redĂ©marrage:" echo "" for service in "${SERVICES[@]}"; do status=$(systemctl is-active "$service" 2>/dev/null || echo "failed") if [ "$status" = "active" ]; then echo "✅ $service: $status" else echo "❌ $service: $status" echo " Voir les logs: sudo journalctl -u $service -n 20" fi done echo "" # Afficher les derniĂšres lignes des logs de l'API echo "📋 Logs rĂ©cents de l'API (recherche TokenManager):" echo "--------------------------------------------------" journalctl -u rpa-vision-v3-api -n 50 --no-pager | grep -i "token" | tail -10 || echo "Aucune ligne avec 'token' trouvĂ©e" echo "" # Test de l'endpoint API echo "🌐 Test de l'API (sans authentification):" echo "-----------------------------------------" response=$(curl -s http://localhost:8000/api/traces/status 2>/dev/null || echo '{"error":"connection_failed"}') echo "$response" echo "" # Test avec authentification echo "🔑 Test de l'API (avec token admin):" echo "------------------------------------" ADMIN_TOKEN=$(grep "RPA_TOKEN_ADMIN" /etc/rpa_vision_v3/rpa_vision_v3.env | cut -d'=' -f2) if [ -n "$ADMIN_TOKEN" ]; then echo "Token utilisĂ©: ${ADMIN_TOKEN:0:16}..." response=$(curl -s -H "Authorization: Bearer $ADMIN_TOKEN" http://localhost:8000/api/traces/status 2>/dev/null || echo '{"error":"connection_failed"}') echo "$response" | python3 -m json.tool 2>/dev/null || echo "$response" else echo "❌ Token admin non trouvĂ© dans /etc/rpa_vision_v3/rpa_vision_v3.env" fi echo "" echo "✅ RedĂ©marrage terminĂ©" echo "" echo "💡 Prochaines Ă©tapes:" echo " 1. VĂ©rifier que l'API rĂ©pond avec le token: voir ci-dessus" echo " 2. Si erreur 'unauthorized', vĂ©rifier les logs: sudo journalctl -u rpa-vision-v3-api -n 50" echo " 3. Tester l'agent: cd agent_v0 && ./run.sh"