Diagrama de flujo
´´´ ┌───────────────────────────────┐ │ SISTEMA ENCENDIDO │ │ (nut-driver + upsd + upsmon) │ └───────────────┬───────────────┘ │ ▼ ┌───────────────────────────────┐ │ UPS EN ESTADO ONLINE │ │ ups.status = OL │ └───────────────┬───────────────┘ │ │ (corte eléctrico real │ o test.battery.start) ▼ ┌───────────────────────────────┐ │ UPS PASA A ONBATT │ │ ups.status = OB LB? │ └───────────────┬───────────────┘ │ │ NOTIFYFLAG ONBATT │ SYSLOG + WALL + EXEC ▼ ┌───────────────────────────────┐ │ upsmon ejecuta NOTIFYCMD │ │ → /usr/sbin/upssched │ └───────────────┬───────────────┘ │ │ upssched lanza timer │ (check_battery) ▼ ┌───────────────────────────────┐ │ /usr/bin/upssched-cmd │ │ Lee battery.charge vía upsc │ └───────────────┬───────────────┘ │ ▼ ┌─────────────────┐ │ battery.charge │ │ es numérico? │ └───────┬─────────┘ │ NO ▼ ┌───────────────────────────────┐ │ Log y salida segura │ │ (no se apaga nada) │ └───────────────────────────────┘
│ SÍ
▼
┌─────────────────┐
│ battery.charge │
│ ≤ 30 % ? │
└───────┬─────────┘
NO │ │ SÍ
│ ▼
│ ┌──────────────────────────┐
│ │ shutdown -h now │
│ │ "Apagado por batería" │
│ └───────────┬──────────────┘
│ │
│ ▼
│ ┌──────────────────────────┐
│ │ Sistema apagándose │
│ │ POWERDOWNFLAG creado │
│ └──────────────────────────┘
│
▼
┌───────────────────────────────┐ │ Log: batería > 30 % │ │ Sistema sigue encendido │ └───────────────────────────────┘ ´´´