#!/usr/bin/execlineb -P
# Bereitschaft statt "der Prozess laeuft": data/check fragt, ob der VRRP-Prozess
# steht (und, wenn eine Zustandsdatei da ist, ob MASTER/BACKUP erreicht wurde).
# 60 s, weil eine VRRP-Wahl mit advert_int 1 und drei verpassten Advertisements
# bis zu ein paar Sekunden braucht und ein Router auch mal langsamer hochkommt.
# Einmal je Dienststart sagen, wenn die Zustandsdatei fehlt und die Bereitschaft
# damit nur Stufe 1 prueft.
#
# Die Meldung steht HIER und nicht in data/check, und das ist gemessen: stderr
# (und stdout) eines von s6-notifyoncheck ausgefuehrten data/check erreicht den
# Logger NICHT -- von Hand aufgerufen schreibt der Check seine vier Zeilen, beim
# Start tauchen sie weder im Unit-Log noch im s6-svscan-Log auf (24.09.2026).
# s6-notifyoncheck interessiert sich nur fuer den Rueckgabewert. Im Run-Skript
# geht die Ausgabe in den Logger, und "einmal je Start" ergibt sich von selbst,
# ohne Markierungsdatei in /run.
#
# Das gilt fuer JEDEN unserer data/check: wer dort etwas melden will, meldet es
# niemandem.
foreground {
  if -n { test -r /run/keepalived.state }
  foreground {
    echo "keepalived-s6: /run/keepalived.state fehlt -- Bereitschaft wird nur als Stufe 1 geprueft (VRRP-Kindprozess laeuft)."
  }
  echo "keepalived-s6: Den VRRP-ZUSTAND kann nur keepalived selbst melden: keepalived-notify >= 0.1.3 schreibt ihn dorthin, oder ein notify-Skript bzw. notify_fifo in der Konfiguration."
}

s6-notifyoncheck -d -n60 --
run-script-daemon keepalived
