network/scripts/dev-kill-all.sh
anonpenguin23 170665bf02
feat: add script for graceful shutdown and process cleanup
- Introduced a new script `dev-kill-all.sh` to handle graceful shutdown of development processes and cleanup of stale PID files.
- Updated Makefile to include a `kill` command that utilizes the new script for improved process management.
- Enhanced the shutdown process to verify that required ports are free after termination of processes.
2025-11-10 06:41:44 +02:00

70 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
BIN_DBN="$ROOT_DIR/bin/dbn"
# First, try graceful shutdown via dbn dev down
if [[ -x "$BIN_DBN" ]]; then
echo "Attempting graceful shutdown via dbn dev down..."
"$BIN_DBN" dev down || true
sleep 1
fi
# Clean up PID files
PIDS_DIR="$HOME/.debros/.pids"
if [[ -d "$PIDS_DIR" ]]; then
echo "Removing stale PID files..."
rm -f "$PIDS_DIR"/*.pid || true
fi
# Force kill any lingering processes
echo "Force killing any remaining dev processes..."
declare -a PATTERNS=(
"ipfs daemon"
"ipfs-cluster-service daemon"
"rqlited"
"olric-server"
"anyone-client"
"bin/node"
"bin/gateway"
)
killed_count=0
for pattern in "${PATTERNS[@]}"; do
count=$(pgrep -f "$pattern" | wc -l)
if [[ $count -gt 0 ]]; then
pkill -f "$pattern" || true
echo "✓ Killed $count process(es) matching: $pattern"
killed_count=$((killed_count + count))
fi
done
if [[ $killed_count -eq 0 ]]; then
echo "✓ No lingering dev processes found"
else
echo "✓ Terminated $killed_count process(es) total"
sleep 1
fi
# Verify ports are free
echo ""
echo "Verifying ports are now available..."
PORTS=(4001 4501 4502 4503 5001 5002 5003 6001 7001 7002 7003 9094 9104 9114 3320 3322 9050)
unavailable=()
for port in "${PORTS[@]}"; do
if lsof -nP -iTCP:"$port" -sTCP:LISTEN >/dev/null 2>&1; then
unavailable+=("$port")
fi
done
if [[ ${#unavailable[@]} -eq 0 ]]; then
echo "✓ All required ports are free"
else
echo "⚠️ WARNING: These ports are still in use: ${unavailable[*]}"
echo "Use 'lsof -nP -i :PORT' to identify the processes"
fi