iitwelders/healthcheck.sh

64 lines
1.4 KiB
Bash

#!/bin/bash
# Health check script for IIT Welders application
# This script checks if the application is running and responding
set -e
# Configuration
HEALTH_URL="http://localhost:3000"
TIMEOUT=10
MAX_RETRIES=3
# Function to check health
check_health() {
local url=$1
local timeout=$2
if curl -f -s --max-time $timeout "$url" > /dev/null 2>&1; then
echo "✅ Health check passed: $url"
return 0
else
echo "❌ Health check failed: $url"
return 1
fi
}
# Function to check if port is listening
check_port() {
local port=$1
if netstat -tuln | grep -q ":$port "; then
echo "✅ Port $port is listening"
return 0
else
echo "❌ Port $port is not listening"
return 1
fi
}
# Main health check
echo "🔍 Starting health check for IIT Welders..."
# Check if port is listening
if ! check_port 3000; then
echo "❌ Application is not running on port 3000"
exit 1
fi
# Check application health
retry_count=0
while [ $retry_count -lt $MAX_RETRIES ]; do
if check_health "$HEALTH_URL" $TIMEOUT; then
echo "✅ Application is healthy and responding"
exit 0
fi
retry_count=$((retry_count + 1))
echo "⏳ Retry $retry_count/$MAX_RETRIES in 5 seconds..."
sleep 5
done
echo "❌ Health check failed after $MAX_RETRIES retries"
exit 1