latido: el vigía de servicios entra al cron — 18 demonios se embarcan y nadie los arranca
Contesta la pregunta que ni el grafo ni `vigia-sonames` contestan: no «¿está sellado?» ni «¿arranca el binario?» sino **«¿hay alguien que lo LEVANTE?»**. Un demonio puede estar sellado, con contenido, con todos sus sonames resueltos, y que ninguna imagen lo arranque nunca. Va al latido por la lección que `vigia-sonames` ya dejó escrita doce líneas más arriba —un vigía que hay que acordarse de invocar no se distingue de no tenerlo— y con más motivo: su entrada son DOS ficheros que cambian por separado (las recetas y `targets.toml`), así que la divergencia entre «declarado» y «habilitado» aparece sola, sin que nadie toque el vigía. Corre PRIMERO su propio `--selftest`: si el guardián está roto, su silencio no es una respuesta. Primera lectura, ya en el repo: 0 errores y 18 avisos. El más ruidoso es `dbus-system`, que viaja en SEIS perfiles y sólo GNOME lo arranca.
This commit is contained in:
@@ -376,6 +376,28 @@ if [ -x "$HAMMER" ]; then
|
||||
&& echo " sonames.txt ✓ $(grep -c 'FALTA' docs/state/sonames.txt) hueco(s) sin proveedor" \
|
||||
|| echo " ⚠ vigia-sonames.py falló"
|
||||
|
||||
# ── VIGÍA DE SERVICIOS (2026-09-12, SDD 30 §4a) ──────────────────────────────────────────────
|
||||
# Contesta la pregunta que ni el grafo ni `vigia-sonames` contestan: no «¿está sellado?» ni
|
||||
# «¿arranca el binario?» sino **«¿hay alguien que lo LEVANTE?»**. Un demonio puede estar sellado,
|
||||
# con contenido, con todos sus sonames resueltos… y que ninguna imagen lo arranque nunca.
|
||||
#
|
||||
# Va al latido por la misma lección que dejó escrita `vigia-sonames` doce líneas más arriba —un
|
||||
# vigía que hay que acordarse de invocar no se distingue de no tenerlo— y con más motivo: su
|
||||
# entrada son DOS ficheros que cambian por separado (las recetas y `targets.toml`), así que la
|
||||
# divergencia entre «declarado» y «habilitado» aparece sin que nadie toque el vigía.
|
||||
#
|
||||
# Corre PRIMERO su propio `--selftest`: si el guardián está roto, su silencio no es una respuesta.
|
||||
{ echo "servicios por imagen · medido $(ts)"
|
||||
echo "── autoprueba del vigía (el primer caso es el CONTROL, tiene que pasar)"
|
||||
python3 scripts/targets.py --selftest 2>&1 | sed 's/^/ /'
|
||||
for perf in $(python3 scripts/targets.py --lista 2>/dev/null | awk '{print $1}'); do
|
||||
echo "── $perf"
|
||||
python3 scripts/targets.py --services "$perf" 2>&1 | sed 's/^/ /'
|
||||
done
|
||||
} > work/.servicios.tmp 2>&1 && mv work/.servicios.tmp docs/state/servicios.txt \
|
||||
&& echo " servicios.txt ✓ $(grep -c '^ ERROR' docs/state/servicios.txt) error(es), $(grep -c '^ AVISO' docs/state/servicios.txt) aviso(s)" \
|
||||
|| echo " ⚠ vigía de servicios falló"
|
||||
|
||||
echo " static-audit: puerta diaria abierta, barriendo el store (~8 min, nice 19)…"
|
||||
nice -n 19 scripts/static-audit.sh > work/.static-audit.salida 2>&1
|
||||
audit_rc=$?
|
||||
@@ -407,13 +429,13 @@ fi
|
||||
# 4. Commitear SÓLO el estado firme (el avance que el humano sigue). Recetas nuevas que YO autoré se
|
||||
# commitean aparte, a mano, para no meter autoría a medias en un commit de cron.
|
||||
if [ "${NO_COMMIT:-}" != "1" ]; then
|
||||
git add docs/state/subcomandos.txt docs/state/raices.txt docs/state/sonames.txt docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/build-state-wlr.json docs/state/drenaje.json docs/state/fuentes-vigia.json docs/state/kernel-contract.txt docs/state/static-audit.txt docs/state/keystones.json docs/state/duplicados.json 2>/dev/null || true
|
||||
git add docs/state/subcomandos.txt docs/state/raices.txt docs/state/sonames.txt docs/state/servicios.txt docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/build-state-wlr.json docs/state/drenaje.json docs/state/fuentes-vigia.json docs/state/kernel-contract.txt docs/state/static-audit.txt docs/state/keystones.json docs/state/duplicados.json 2>/dev/null || true
|
||||
if ! git diff --cached --quiet 2>/dev/null; then
|
||||
# ⚠ ACOTADO POR PATHSPEC (`-- <rutas>`), no sólo por el `git add` de arriba: el índice es
|
||||
# estado COMPARTIDO y `git commit` a secas commitea el índice ENTERO, así que lo que otro
|
||||
# agente dejara en `git add` viajaría dentro del commit del cron. Es la regla 2 de CLAUDE.md,
|
||||
# y acá pesa más que en ningún lado: esto corre desatendido cada 30 min mientras se trabaja.
|
||||
git commit -q -m "estado: cosecha granja $(ts) — avance del árbol KDE" -- docs/state/subcomandos.txt docs/state/raices.txt docs/state/sonames.txt docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/build-state-wlr.json docs/state/drenaje.json docs/state/fuentes-vigia.json docs/state/kernel-contract.txt docs/state/static-audit.txt docs/state/keystones.json docs/state/duplicados.json 2>/dev/null \
|
||||
git commit -q -m "estado: cosecha granja $(ts) — avance del árbol KDE" -- docs/state/subcomandos.txt docs/state/raices.txt docs/state/sonames.txt docs/state/servicios.txt docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/build-state-wlr.json docs/state/drenaje.json docs/state/fuentes-vigia.json docs/state/kernel-contract.txt docs/state/static-audit.txt docs/state/keystones.json docs/state/duplicados.json 2>/dev/null \
|
||||
&& { git push -q origin main 2>/dev/null && echo "==> estado commiteado+pusheado" \
|
||||
|| echo "==> estado commiteado (push falló, reintenta próximo ciclo)"; }
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user