@@ -11,15 +11,24 @@ cd ../../
1111# Function to cleanup on exit
1212cleanup () {
1313 echo " 🧹 Cleaning up..."
14+
15+ # In CI, use force kill (-9) to prevent hanging
16+ if [ -n " $CI " ] || [ -n " $JENKINS_URL " ] || [ -n " $GITHUB_ACTIONS " ] || [ -n " $GITLAB_CI " ]; then
17+ KILL_SIGNAL=" -9"
18+ echo " 🤖 CI environment detected - using force kill"
19+ else
20+ KILL_SIGNAL=" "
21+ fi
22+
1423 if [ ! -z " $FRONTEND_PID " ] && kill -0 $FRONTEND_PID 2> /dev/null; then
1524 echo " 🔴 Stopping frontend server (PID: $FRONTEND_PID )..."
16- kill $FRONTEND_PID
17- wait $FRONTEND_PID 2> /dev/null
25+ kill $KILL_SIGNAL $ FRONTEND_PID 2> /dev/null || true
26+ sleep 1
1827 fi
1928 if [ ! -z " $BACKEND_PID " ] && kill -0 $BACKEND_PID 2> /dev/null; then
2029 echo " 🔴 Stopping backend server (PID: $BACKEND_PID )..."
21- kill $BACKEND_PID
22- wait $BACKEND_PID 2> /dev/null
30+ kill $KILL_SIGNAL $ BACKEND_PID 2> /dev/null || true
31+ sleep 1
2332 fi
2433 # Note: Dashboard process (DASHBOARD_PID) is intentionally NOT killed
2534 # to allow continued access to results after evaluation completes
@@ -139,15 +148,15 @@ if [ $? -eq 0 ]; then
139148 # Stop the evaluation servers but keep dashboard running
140149 if [ " $FRONTEND_ALREADY_RUNNING " = false ] && [ ! -z " $FRONTEND_PID " ] && kill -0 $FRONTEND_PID 2> /dev/null; then
141150 echo " 🔴 Stopping frontend server (evaluation complete)..."
142- kill $FRONTEND_PID
143- wait $FRONTEND_PID 2> /dev/null
151+ kill $FRONTEND_PID 2> /dev/null || true
152+ sleep 1
144153 FRONTEND_PID=" "
145154 fi
146155
147156 if [ " $BACKEND_ALREADY_RUNNING " = false ] && [ ! -z " $BACKEND_PID " ] && kill -0 $BACKEND_PID 2> /dev/null; then
148157 echo " 🔴 Stopping backend server (evaluation complete)..."
149- kill $BACKEND_PID
150- wait $BACKEND_PID 2> /dev/null
158+ kill $BACKEND_PID 2> /dev/null || true
159+ sleep 1
151160 BACKEND_PID=" "
152161 fi
153162
0 commit comments