#!/bin/bash # Distributed Traffic Simulation Startup Script # kill java echo "-> Cleaning up existing processes..." pkill -9 java 2>/dev/null sleep 2 # build echo "-> Building project..." cd "$(dirname "$0")" mvn package -DskipTests -q if [ $? -ne 0 ]; then echo "XXX Build failed! XXX" exit 1 fi echo "-> Build complete" echo "" # start gui echo "-> Starting JavaFX Dashboard..." mvn javafx:run & DASHBOARD_PID=$! sleep 3 # acho que é assim idk echo "-> Starting 5 Intersection processes..." for id in Cr1 Cr2 Cr3 Cr4 Cr5; do java -cp target/classes:target/main-1.0-SNAPSHOT.jar sd.IntersectionProcess $id > /tmp/$(echo $id | tr '[:upper:]' '[:lower:]').log 2>&1 & echo "[SUCCESS] Started $id" done sleep 2 # exit echo "-> Starting Exit Node..." java -cp target/classes:target/main-1.0-SNAPSHOT.jar sd.ExitNodeProcess > /tmp/exit.log 2>&1 & sleep 1 # coordinator echo "-> Starting Coordinator..." java -cp target/classes:target/main-1.0-SNAPSHOT.jar sd.coordinator.CoordinatorProcess > /tmp/coordinator.log 2>&1 & sleep 1 echo "" echo "-> All processes started!" echo "" echo "-> System Status:" ps aux | grep "java.*sd\." | grep -v grep | wc -l | xargs -I {} echo " {} Java processes running" echo "" echo " IMPORTANT: Keep the JavaFX Dashboard window OPEN for 60+ seconds" echo " to see live updates! The simulation runs for 60 seconds." echo "" echo "-> Logs available at:" echo " Dashboard: Check JavaFX window (live updates)" echo " Intersections: /tmp/cr*.log" echo " Exit Node: /tmp/exit.log" echo " Coordinator: /tmp/coordinator.log" echo "" echo "-> To stop all processes: pkill -9 java" echo ""