From 50d51bb4a8d7636dd5ed15f529c86c2c3b1a04a7 Mon Sep 17 00:00:00 2001 From: sergio Date: Sat, 18 Jul 2026 11:52:16 -0400 Subject: [PATCH] =?UTF-8?q?granja:=20cosecha-heartbeat.sh=20=E2=80=94=20la?= =?UTF-8?q?tido=20de=20cosecha=20bajo=20mirada=20(arje-zero=20sin=20crond)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- scripts/farm/cosecha-heartbeat.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 scripts/farm/cosecha-heartbeat.sh 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