mirror of
https://github.com/DeBrosOfficial/network.git
synced 2025-12-13 00:38:49 +00:00
- 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.
70 lines
1.6 KiB
Bash
Executable File
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
|
|
|