OverviewFilesCommitsIssuesDocsReleasesPeers

wirecore / wirecore-relay / stop-relay.sh

47 lines · bash ref:
#!/bin/bash

# Wirecore Relay - Stop Script
# Stops the relay server gracefully

set -e

PID_FILE="/tmp/wirecore-relay.pid"

if [ ! -f "$PID_FILE" ]; then
    echo "⚠️  No PID file found at $PID_FILE"
    echo "Relay may not be running, or was started manually."
    echo ""
    echo "To stop manually:"
    echo "  pkill -f 'node.*wirecore-relay'"
    exit 1
fi

PID=$(cat "$PID_FILE")

if ! ps -p "$PID" > /dev/null 2>&1; then
    echo "⚠️  Process $PID not running (stale PID file)"
    rm -f "$PID_FILE"
    exit 0
fi

echo "🛑 Stopping Wirecore Relay (PID: $PID)..."

# Send SIGINT for graceful shutdown (triggers apds.close())
kill -INT "$PID"

# Wait up to 10 seconds
for i in {1..10}; do
    if ! ps -p "$PID" > /dev/null 2>&1; then
        echo "✅ Relay stopped gracefully"
        rm -f "$PID_FILE"
        exit 0
    fi
    sleep 1
done

# Force kill if still running
echo "⚠️  Graceful shutdown timed out, forcing..."
kill -9 "$PID" 2>/dev/null || true
rm -f "$PID_FILE"
echo "✅ Relay stopped (forced)"