From 3355c1ea8569ff31c6fabb7b3a9726e2e8c138d7 Mon Sep 17 00:00:00 2001 From: DanS Date: Fri, 20 Mar 2026 06:26:15 -0500 Subject: [PATCH] stop server script --- stop.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 stop.sh diff --git a/stop.sh b/stop.sh new file mode 100755 index 0000000..f8b7221 --- /dev/null +++ b/stop.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Copyright 2024-2026 The DragonX Developers +# Released under GPLv3 +# +# Stops lightwalletd and its monitor process. + +set -euo pipefail + +PIDFILE="/tmp/lwd-monitor.pid" + +# Stop the monitor first (if running), which will also stop lightwalletd +if [[ -f "$PIDFILE" ]]; then + MON_PID=$(cat "$PIDFILE") + if kill -0 "$MON_PID" 2>/dev/null; then + echo "Stopping monitor (PID $MON_PID)..." + kill "$MON_PID" + # Wait briefly for cleanup + for i in $(seq 1 10); do + kill -0 "$MON_PID" 2>/dev/null || break + sleep 0.5 + done + echo "Monitor stopped." + else + echo "Stale monitor pidfile found, removing." + rm -f "$PIDFILE" + fi +fi + +# Kill any remaining lightwalletd processes +LWDPIDS=$(pgrep -f 'lightwalletd.*-conf-file' 2>/dev/null || true) +if [[ -n "$LWDPIDS" ]]; then + echo "Stopping lightwalletd (PID $LWDPIDS)..." + kill $LWDPIDS 2>/dev/null || true + sleep 1 + # Force kill if still running + for pid in $LWDPIDS; do + if kill -0 "$pid" 2>/dev/null; then + echo "Force killing PID $pid..." + kill -9 "$pid" 2>/dev/null || true + fi + done + echo "lightwalletd stopped." +else + echo "No lightwalletd process found." +fi