#!/bin/bash # # WebRTC Latency Test POC - Stop Script # Stops the WebRTC server # set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' CYAN='\033[0;36m' NC='\033[0m' success() { echo -e "${GREEN}✓${NC} $1"; } warn() { echo -e "${YELLOW}⚠${NC} $1"; } error() { echo -e "${RED}✗${NC} $1"; } header() { echo -e "\n${CYAN}$1${NC}"; } PID_FILE="/tmp/webrtc-server.pid" PORT=9000 echo "" echo "╔══════════════════════════════════════════════════════════════╗" echo "║ WEBRTC LATENCY TEST - STOP SERVER ║" echo "╚══════════════════════════════════════════════════════════════╝" echo "" # ============================================================ # CHECK IF SERVER IS RUNNING # ============================================================ header "Checking server status..." SERVER_RUNNING=false # Check PID file if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if ps -p "$PID" > /dev/null 2>&1; then echo " Found server process (PID: $PID)" SERVER_RUNNING=true else warn "PID file exists but process not running (stale)" rm -f "$PID_FILE" fi fi # Also check for processes using the port if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1; then echo " Found process listening on port $PORT" SERVER_RUNNING=true fi if [ "$SERVER_RUNNING" = false ]; then echo "" echo " ${YELLOW}Server is not running${NC}" echo "" exit 0 fi # ============================================================ # STOP SERVER # ============================================================ header "Stopping WebRTC server..." # Kill by PID if available if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if ps -p "$PID" > /dev/null 2>&1; then echo " Stopping server (PID: $PID)..." kill $PID 2>/dev/null || true # Wait for process to stop for i in {1..5}; do if ! ps -p $PID > /dev/null 2>&1; then success "Server stopped" break fi sleep 1 done # Force kill if still running if ps -p $PID > /dev/null 2>&1; then echo " Force killing server..." kill -9 $PID 2>/dev/null || true fi fi rm -f "$PID_FILE" fi # Kill any webrtc-server processes echo " Killing webrtc-server processes..." pkill -f "webrtc-server" 2>/dev/null || true # Kill any process using the port if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1; then echo " Killing process using port $PORT..." lsof -ti :$PORT | xargs kill -9 2>/dev/null || true fi # Wait a moment sleep 2 success "Server stopped" # ============================================================ # VERIFY STOPPED # ============================================================ header "Verifying..." STILL_RUNNING=false if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1; then error "Something is still listening on port $PORT" STILL_RUNNING=true elif pgrep -f "webrtc-server" > /dev/null 2>&1; then error "Some webrtc-server processes still running" STILL_RUNNING=true fi if [ "$STILL_RUNNING" = false ]; then success "All processes stopped" fi # ============================================================ # DISPLAY LOG # ============================================================ header "Last log entries" LOG_FILE="/tmp/webrtc-server.log" if [ -f "$LOG_FILE" ]; then tail -10 "$LOG_FILE" | sed 's/^/ /' else echo " No log file found" fi echo "" success "Stop completed!" echo ""