exchange: manual start/health + zz-hacktivism conf drop-in

This commit is contained in:
Hernâni Marques 2026-06-30 19:14:49 +02:00
parent 07e7131850
commit 5920296ae4
No known key found for this signature in database
10 changed files with 1027 additions and 0 deletions

View file

@ -0,0 +1,88 @@
#!/bin/bash
# Health check for manual taler-exchange (same style as check_merchant-health.sh).
# Runnable as taler-exchange-httpd (or any user that can see processes + curl localhost).
CONF=/etc/taler-exchange/taler-exchange.conf
SOCK=/run/taler-exchange/httpd/exchange-http.sock
green() { echo -e "\e[32m$1\e[0m"; }
red() { echo -e "\e[31m$1\e[0m"; }
yellow() { echo -e "\e[33m$1\e[0m"; }
fail=0
ok() { green "[OK] $1"; }
bad() { red "[FAIL] $1"; fail=1; }
warn() { yellow "[WARN] $1"; }
echo "=== Taler Exchange Health Check ==="
# 1. secmods (started by root base script)
for p in taler-exchange-secmod-rsa taler-exchange-secmod-cs taler-exchange-secmod-eddsa; do
if pgrep -f "$p" >/dev/null 2>&1; then
ok "process $p"
else
bad "process $p not running"
fi
done
# 2. httpd
if pgrep -f taler-exchange-httpd >/dev/null 2>&1; then
ok "process taler-exchange-httpd"
else
bad "process taler-exchange-httpd is NOT running"
fi
# 3. serving mode
SERVE=$(taler-exchange-config -c "$CONF" -s exchange -o SERVE 2>/dev/null || echo unix)
PORT=$(taler-exchange-config -c "$CONF" -s exchange -o PORT 2>/dev/null || echo 9011)
if [ "$SERVE" = "tcp" ]; then
if curl -sf -m 3 "http://127.0.0.1:${PORT}/config" >/dev/null 2>&1; then
ok "HTTP /config on 127.0.0.1:${PORT}"
elif curl -sf -m 3 "http://127.0.0.1:${PORT}/keys" >/dev/null 2>&1; then
ok "HTTP /keys on 127.0.0.1:${PORT}"
else
bad "no HTTP response on 127.0.0.1:${PORT} (/config|/keys)"
fi
else
if [ -S "$SOCK" ]; then
ok "socket $SOCK"
else
bad "socket does NOT exist: $SOCK"
fi
fi
# 4. wire helpers — ensure (no systemd) then require
if [ "${SKIP_ENSURE:-0}" != "1" ]; then
if [ -x /usr/local/bin/ensure_exchange_helpers.sh ]; then
echo "--- ensure_exchange_helpers ---"
/usr/local/bin/ensure_exchange_helpers.sh || warn "ensure_exchange_helpers exited non-zero"
elif [ -x "$(dirname "$0")/ensure_exchange_helpers.sh" ]; then
echo "--- ensure_exchange_helpers ---"
"$(dirname "$0")/ensure_exchange_helpers.sh" || warn "ensure_exchange_helpers exited non-zero"
elif [ -x /root/ensure_exchange_helpers.sh ]; then
echo "--- ensure_exchange_helpers ---"
/root/ensure_exchange_helpers.sh || warn "ensure_exchange_helpers exited non-zero"
fi
fi
live_helper() {
local p="$1"
# COMM is 15 chars; use full cmdline match
pgrep -f "(^|/)(${p})( |$)" >/dev/null 2>&1
}
for p in taler-exchange-aggregator taler-exchange-wirewatch taler-exchange-transfer taler-exchange-closer; do
if live_helper "$p"; then
ok "process $p"
else
bad "process $p not running (settlement needs transfer+aggregator)"
fi
done
if [ "$fail" -eq 0 ]; then
green "=== ALL CRITICAL CHECKS PASSED ==="
exit 0
fi
red "=== SOME CHECKS FAILED ==="
exit 1