El manager de systemd --user de devops arranca con HOME=/DATA (el de /etc/passwd), no /DATA/AppData/home-devops -- ese override solo se aplica en una shell interactiva vía /etc/profile.d/zz-devops-home.sh, que el manager de systemd nunca carga. Sin Environment=HOME=... en lab-agent.service, claude -p habría buscado las credenciales en /DATA/.claude/ (no existe) y fallado en cada corrida. Detectado y corregido en vivo corriendo el servicio manualmente vía systemctl --user start antes de habilitar el timer. README documenta la instalación real: unidades en /DATA/.config/systemd/user/ (no ~/.config/... de una shell interactiva), loginctl enable-linger devops como único paso con sudo. Timer activo desde 2026-08-26 (lab-agent.timer, cada 15 min, 06:00-23:00 hora local), tras confirmación explícita y ver el costo mensual estimado.
28 lines
1.2 KiB
Desktop File
28 lines
1.2 KiB
Desktop File
[Unit]
|
|
Description=lab-agent: diagnostico/correccion del lab GitOps cruzcloud
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
WorkingDirectory=/media/HDD-Storage/AppData/k3d-lab-v3/lab-cruzcloud/scripts/lab-agent
|
|
# El manager de systemd --user de devops arranca con HOME=/DATA (el de
|
|
# /etc/passwd), no /DATA/AppData/home-devops -- ese override solo se
|
|
# aplica al abrir una shell interactiva via /etc/profile.d/zz-devops-home.sh,
|
|
# que el manager de systemd nunca carga. Sin esto, claude -p buscaria
|
|
# ~/.claude/.credentials.json en /DATA/.claude/ (no existe) y fallaria
|
|
# la autenticacion. Confirmado en vivo 2026-08-26.
|
|
Environment=HOME=/DATA/AppData/home-devops
|
|
ExecStart=/media/HDD-Storage/AppData/k3d-lab-v3/lab-cruzcloud/scripts/lab-agent/lab-agent.sh --live
|
|
TimeoutStartSec=300
|
|
|
|
# Limites de recursos (pedido explicito de gobernanza, nunca irrestricto).
|
|
# El propio script casi siempre corta antes por la pausa nocturna o por
|
|
# no tener nada elegible, asi que en la practica rara vez se acerca a
|
|
# estos topes -- estan para contener un caso patologico (claude -p
|
|
# colgado, kubectl en loop), no para el uso normal.
|
|
CPUQuota=100%
|
|
MemoryMax=1G
|
|
MemorySwapMax=256M
|
|
Nice=10
|