#!/usr/bin/env bash # archivmail — Cron-Wrapper für 'index-pending' (PROJ-58 batch_mode). # # Verhindert überlappende Läufe per PID-Lockfile, analog zum mailpiler-Vorbild # (/usr/libexec/piler/indexer.delta.sh, MAINTMPFILE/DELTATMPFILE-Muster): # Läuft ein Cron-Job länger als das Intervall (z.B. großer Backlog), würde # sonst ein zweiter, parallel gestarteter Lauf zusätzliche Last erzeugen statt # sie zu glätten — genau das soll batch_mode ja vermeiden. set -euo pipefail LOCKFILE=/var/run/archivmail/index-pending.lock LOGTAG=archivmail-index-pending mkdir -p "$(dirname "$LOCKFILE")" if [[ -f "$LOCKFILE" ]]; then echo "INDEX-PENDING ERROR: bereits laufender Lauf seit $(cat "$LOCKFILE")" | logger -t "$LOGTAG" exit 0 fi date > "$LOCKFILE" trap 'rm -f "$LOCKFILE"' EXIT echo "INDEX-PENDING INFO: Lauf gestartet" | logger -t "$LOGTAG" /opt/archivmail/archivmail index-pending --config /etc/archivmail/config.yml --limit "${ARCHIVMAIL_INDEX_LIMIT:-500}" echo "INDEX-PENDING INFO: Lauf beendet" | logger -t "$LOGTAG"