Files
lightwalletd/stop.sh
2026-03-20 06:26:15 -05:00

46 lines
1.2 KiB
Bash
Executable File

#!/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