exchange: manual start/health + zz-hacktivism conf drop-in
This commit is contained in:
parent
07e7131850
commit
5920296ae4
10 changed files with 1027 additions and 0 deletions
88
scripts/taler-exchange/check_exchange-health.sh
Executable file
88
scripts/taler-exchange/check_exchange-health.sh
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue