76 lines
2.5 KiB
Bash
76 lines
2.5 KiB
Bash
|
|
#!/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
|