From 99ed1aca9a0533014fd532dd6947c1b3be139b6c Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 16 Sep 2026 06:00:15 -0700 Subject: [PATCH] docs: reboot-tested the frank-medium trio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rebooted dankserver unattended and verified without any manual step: all three units active 59 s after boot, both replicas healthy ~3.5 min after boot, real completion through :7770 — the failure mode this repo has been bitten by before (a service that only ever ran from compose and stayed dark after a reboot). Records why it works: [Install] WantedBy=default.target wired into the generator's default.target wants, plus Linger=yes, plus a disk-backed compile cache so a cold boot needs no warm-up beyond the model load. --- .../LLM/frank-medium-radiance-mxfp4.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/serverAppConfigs-docs/LLM/frank-medium-radiance-mxfp4.md b/serverAppConfigs-docs/LLM/frank-medium-radiance-mxfp4.md index 0217ad7..9b6201b 100644 --- a/serverAppConfigs-docs/LLM/frank-medium-radiance-mxfp4.md +++ b/serverAppConfigs-docs/LLM/frank-medium-radiance-mxfp4.md @@ -199,6 +199,27 @@ the entrypoint/healthcheck/proxy scripts mounted read-only out of The healthcheck reads `PORT`, so one probe serves the replicas (:7771/:7772), the proxy (:7770) and the TP=2 target. +### Boot persistence, verified by rebooting + +The trio was reboot-tested end to end (2026-09-16), because this repository has +been burned before by services that ran only from `compose.yaml` and stayed dark +after a reboot: + +``` +sudo reboot # unattended; ~2 min 14 s to graphical.target +# ... no manual step at any point ... +systemctl --user is-active frank-medium-a frank-medium-b frank-medium-proxy + -> active active active (containers up 59 s after boot) +curl http://127.0.0.1:7770/health -> both replicas UP ~3.5 min after boot +``` + +Why it comes back: each unit's `[Install] WantedBy=default.target` — the generator +wires all three into `default.target`'s wants (they report `generated`, which is +the healthy state on this host's v1 quadlet generator and cannot be `enable`d) — +plus `Linger=yes` for the deploy user, so the user manager runs without a login +session. The replicas need no warm cache: the compile cache lives on disk +(`/cache`) and the model loads cold in about three minutes. + ## Deploy and verify ```