koopa-admin-log/scripts/taler-merchant/taler-merchant-wirewatch-supervise.sh
2026-07-09 17:58:03 +02:00

26 lines
979 B
Bash
Executable file

#!/bin/bash
# Run inside merchant container (as root).
# Restarts taler-merchant-wirewatch when it exits.
# Without systemd, wirewatch exits on PG config NOTIFY and would stay down.
set +e
LOG=/var/log/taler-merchant/wirewatch-supervise.log
WW_LOG=/var/log/taler-merchant/wirewatch.log
CONF="${TALER_MERCHANT_CONFIG:-/etc/taler-merchant/taler-merchant.conf}"
mkdir -p /var/log/taler-merchant
echo "$(date -u +%FT%TZ) supervise start" >>"$LOG"
for p in $(ps -eo pid=,args= | awk '$2=="/usr/bin/taler-merchant-wirewatch"{print $1}'); do
kill "$p" 2>/dev/null || true
done
sleep 1
while true; do
echo "$(date -u +%FT%TZ) start wirewatch" >>"$LOG"
if [ "$(id -un)" = "root" ]; then
runuser -u taler-merchant-httpd -- /usr/bin/taler-merchant-wirewatch -c "$CONF" -L INFO >>"$WW_LOG" 2>&1
ec=$?
else
/usr/bin/taler-merchant-wirewatch -c "$CONF" -L INFO >>"$WW_LOG" 2>&1
ec=$?
fi
echo "$(date -u +%FT%TZ) wirewatch exit=$ec; sleep 2" >>"$LOG"
sleep 2
done