Renombrado el directorio del worker y la unit, con las tres units del repo (farm, deadman service y timer). Todas las rutas /opt/hammer del hub pasan a /opt/takana: eran defaults REMOTE= y HAMMER_DIR=, mas los systemctl/journalctl que nombraban la unit sin el sufijo .service, que el primer sed no casaba. Orden, para que no quedara partido: el hub siembra por rsync a una ruta fija, asi que se saco el cron ANTES de mover. Si se movia el worker con el hub apuntando a la ruta vieja, la siguiente cosecha recreaba /opt/hammer y quedaban dos arboles. Verificado de punta a punta: - el worker cerro un ciclo de build REAL desde /opt/takana (dunst sellado, 1/1) - una cosecha completa del hub contra la ruta nueva: siembra, manifiesto, los nueve grafos, static-audit (691 estaticos, MIENTEN 0) y estado pusheado - la unit vieja quedo deshabilitada y borrada; /opt tiene una sola entrada NO se tocan dos referencias a /opt/hammer que siguen siendo CORRECTAS: docs/23-plan-rehasheo.md describe rutas EMBEBIDAS en artefactos ya construidos —que literalmente dicen /opt/hammer/work en sus secciones .debug— y el HANDOFF de la noche de KDE es registro. Cambiarlas haria que los documentos mientan.
19 lines
828 B
SYSTEMD
19 lines
828 B
SYSTEMD
# Dispara el dead-man switch cada 10 min. 6 ticks sin trabajo = 1 h idle → el worker se borra solo.
|
|
#
|
|
# systemd timer y NO cron POR UNA LECCIÓN MEDIDA: un cron "validado a mano" nunca disparó porque el
|
|
# PID 1 de aquella máquina (arje-zero) no tenía crond. Validar la LÍNEA no es validar que un demonio
|
|
# la ejecute. El worker sí corre systemd, y `systemctl list-timers` da la evidencia de que está
|
|
# armado — verificable con `deadman.sh --verificar`.
|
|
[Unit]
|
|
Description=hammer: borra el worker si lleva 1h sin trabajo (baseline EUR 0)
|
|
|
|
[Timer]
|
|
OnBootSec=10min
|
|
OnUnitActiveSec=10min
|
|
# Persistent=false a propósito: si el server estuvo apagado no queremos una ráfaga de ticks al
|
|
# volver — la cuenta de idle debe medir tiempo REAL sin trabajo, no ticks perdidos.
|
|
Persistent=false
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|