52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PROJECT_ROOT="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
echo "Stopping dev servers (project root: $PROJECT_ROOT)"
|
|
|
|
# Kill backend from pid file
|
|
if [ -f "$PROJECT_ROOT/filebrowser.pid" ]; then
|
|
pid=$(cat "$PROJECT_ROOT/filebrowser.pid")
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
echo "Killing backend pid $pid"
|
|
kill "$pid" || true
|
|
sleep 1
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
kill -9 "$pid" || true
|
|
fi
|
|
fi
|
|
rm -f "$PROJECT_ROOT/filebrowser.pid"
|
|
fi
|
|
|
|
# Kill frontend from pid file
|
|
if [ -f "$PROJECT_ROOT/frontend.pid" ]; then
|
|
pid=$(cat "$PROJECT_ROOT/frontend.pid")
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
echo "Killing frontend pid $pid"
|
|
kill "$pid" || true
|
|
sleep 1
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
kill -9 "$pid" || true
|
|
fi
|
|
fi
|
|
rm -f "$PROJECT_ROOT/frontend.pid"
|
|
fi
|
|
|
|
# Also attempt to free ports 8080 and 5173 by killing processes listening on them (best-effort)
|
|
pids=$(ss -ltnp | grep -E '127\.0\.0\.1:8080|:5173' | grep -oP 'pid=\K[0-9]+' | sort -u || true)
|
|
for p in $pids; do
|
|
if [ -n "$p" ]; then
|
|
if kill -0 "$p" 2>/dev/null; then
|
|
echo "Killing leftover pid $p"
|
|
kill "$p" || true
|
|
sleep 1
|
|
if kill -0 "$p" 2>/dev/null; then
|
|
kill -9 "$p" || true
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo "Stopped."
|