granja: cosecha-heartbeat.sh — latido de cosecha bajo mirada (arje-zero sin crond)
El crontab */30 no dispara cuando el laptop bootea en mirada (PID1=arje-zero, sin crond). Envuelve el one-shot cosecha-cron.sh en un loop setsid — el mecanismo que sí corre sin root y sobrevive al fin de sesion (no al reboot). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +14 −0
diff --git a/scripts/farm/cosecha-heartbeat.sh b/scripts/farm/cosecha-heartbeat.sh
new file mode 100755
index 00000000..a6eaf729
--- /dev/null
+++ b/scripts/farm/cosecha-heartbeat.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+# cosecha-heartbeat.sh — latido de cosecha para cuando el laptop bootea EN MIRADA (arje-zero PID1,
+# sin crond). Envuelve el one-shot cosecha-cron.sh en un loop. El crontab NO dispara bajo arje-zero;
+# este es el mecanismo equivalente (ver memoria cosecha-cron-infinita / harvest-loop.sh).
+# setsid scripts/farm/cosecha-heartbeat.sh >>work/cosecha-cron.log 2>&1 &
+# Parar: pkill -f cosecha-heartbeat. NO sobrevive reboot (relanzar tras bootear).
+set -u
+cd "$(dirname "$0")/../.."
+INTERVALO="${INTERVALO:-1800}"
+echo "$(date -u +%FT%TZ) cosecha-heartbeat arrancado (cada ${INTERVALO}s, PID $$)"
+while :; do
+ scripts/farm/cosecha-cron.sh || echo "$(date -u +%FT%TZ) ciclo falló, sigo"
+ sleep "$INTERVALO"
+done