Files
Church-Music/legacy-site/scripts/shell/kill-dev-servers.sh

76 lines
2.5 KiB
Bash
Raw Normal View History

2026-01-27 18:04:50 -06:00
#!/bin/bash
#
# Kill All Development Servers Script
# Ensures no development servers (react-scripts, webpack-dev-server) are running
# This should be run before starting production services
#
set -e
echo "=========================================="
echo "Killing all development servers..."
echo "=========================================="
# Kill react-scripts (development server)
echo "Checking for react-scripts processes..."
REACT_PIDS=$(pgrep -f "react-scripts" || true)
if [ -n "$REACT_PIDS" ]; then
echo "Found react-scripts processes: $REACT_PIDS"
pkill -9 -f "react-scripts" || true
echo "✓ Killed react-scripts"
else
echo "✓ No react-scripts processes found"
fi
# Kill webpack-dev-server
echo "Checking for webpack-dev-server processes..."
WEBPACK_PIDS=$(pgrep -f "webpack-dev-server" || true)
if [ -n "$WEBPACK_PIDS" ]; then
echo "Found webpack-dev-server processes: $WEBPACK_PIDS"
pkill -9 -f "webpack-dev-server" || true
echo "✓ Killed webpack-dev-server"
else
echo "✓ No webpack-dev-server processes found"
fi
# Kill any Python dev servers (app.py running directly, NOT gunicorn)
echo "Checking for Python dev servers..."
# Only kill python processes running app.py directly, NOT gunicorn workers
for pid in $(pgrep -f "python.*app\.py" || true); do
CMD=$(ps -p $pid -o args= 2>/dev/null || true)
# Skip if it's a gunicorn worker
if echo "$CMD" | grep -q "gunicorn"; then
echo "Skipping gunicorn process: $pid"
continue
fi
# Kill if it's a direct python app.py process
if echo "$CMD" | grep -q "python.*app\.py"; then
echo "Killing Python dev server: $pid ($CMD)"
kill -9 $pid 2>/dev/null || true
fi
done
echo "✓ Python dev server check complete"
# Wait for ports to be released
echo "Waiting for ports to be released..."
sleep 1
# Verify port 5100 is free (except for production serve)
PORT_5100=$(lsof -i :5100 2>/dev/null | grep -v "serve" || true)
if [ -n "$PORT_5100" ]; then
echo "⚠ Warning: Port 5100 in use by non-serve process"
echo "$PORT_5100"
# Only kill non-serve processes on port 5100
lsof -i :5100 2>/dev/null | grep -v -E "serve|COMMAND" | awk '{print $2}' | xargs -r kill -9 || true
sleep 1
else
echo "✓ Port 5100 is free or only used by serve"
fi
echo "=========================================="
echo "✓ All development servers killed"
echo "✓ Ports verified (production services preserved)"
echo "=========================================="
exit 0