From acc754b93e24ed21081533bae6dae6a40c012b29 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Sun, 21 Jun 2026 18:42:22 +0200 Subject: [PATCH] fix: verstuemmelte MC_CMD_TEMPLATE abfangen (systemd-Quoting-Bug) Eine unquotierte `Environment=MC_CMD_TEMPLATE=llama-server -m {model} ...`-Zeile wird von systemd an Leerzeichen gesplittet -> nur "llama-server" kommt an. Dadurch schrieb register/install nur "llama-server" ohne -m/-c in die config.yaml (coder/ vision/coder-fast blieben leer; nur scout war von provision.sh direkt gesetzt). - config.py: fehlt {model} in MC_CMD_TEMPLATE -> sicherer Default - mission-control.service: Environment-Wert gequotet + Warnhinweis Co-Authored-By: Claude Opus 4.8 --- config.py | 11 ++++++++--- mission-control.service | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/config.py b/config.py index 9c8db37..b298137 100644 --- a/config.py +++ b/config.py @@ -20,11 +20,16 @@ MODELS_DIR = Path(os.environ.get("MC_MODELS_DIR", "/srv/models")) # Befehl, der zum Starten eines Modells in die config.yaml geschrieben wird. # {model} = Pfad zur GGUF-Datei, {ctx} = Kontextlaenge, ${PORT} bleibt fuer llama-swap stehen. # WICHTIG: an deinen Container-/llama-server-Aufruf anpassen (siehe README). -CMD_TEMPLATE = os.environ.get( - "MC_CMD_TEMPLATE", +_DEFAULT_CMD_TEMPLATE = ( "llama-server -m {model} --host 127.0.0.1 --port ${PORT} " - "-c {ctx} -ngl 999 -fa 1 --no-mmap", + "-c {ctx} -ngl 999 -fa 1 --no-mmap" ) +CMD_TEMPLATE = os.environ.get("MC_CMD_TEMPLATE", _DEFAULT_CMD_TEMPLATE) +# Schutz: Eine unquotierte systemd `Environment=MC_CMD_TEMPLATE=...`-Zeile wird an +# Leerzeichen gesplittet und kommt als blosses "llama-server" an. Fehlt der {model}- +# Platzhalter, ist die Vorlage unbrauchbar -> sicheren Default verwenden. +if "{model}" not in CMD_TEMPLATE: + CMD_TEMPLATE = _DEFAULT_CMD_TEMPLATE # Befehl fuer "Container/Toolbox aktualisieren". Standard: kyuz0 refresh-Skript. UPDATE_CMD = os.environ.get("MC_UPDATE_CMD", "") DEFAULT_TTL = int(os.environ.get("MC_DEFAULT_TTL", "300")) diff --git a/mission-control.service b/mission-control.service index b23863f..7bd8631 100644 --- a/mission-control.service +++ b/mission-control.service @@ -13,7 +13,9 @@ Environment=MC_CONFIG_PATH=/etc/llama-swap/config.yaml Environment=MC_MODELS_DIR=/srv/models Environment=MC_DEFAULT_TTL=300 # Befehl zum Starten eines Modells (in config.yaml geschrieben). ${PORT} bleibt stehen! -Environment=MC_CMD_TEMPLATE=llama-server -m {model} --host 127.0.0.1 --port ${PORT} -c {ctx} -ngl 999 -fa 1 --no-mmap +# WICHTIG: Wert MUSS gequotet sein — sonst splittet systemd an Leerzeichen und es kommt +# nur "llama-server" an (Mission Control faengt das zur Sicherheit auch im Code ab). +Environment="MC_CMD_TEMPLATE=llama-server -m {model} --host 127.0.0.1 --port ${PORT} -c {ctx} -ngl 999 -fa 1 --no-mmap" # Update-Befehl (z.B. kyuz0 refresh oder podman pull): Environment=MC_UPDATE_CMD=/opt/amd-strix-halo-toolboxes/refresh-toolboxes.sh all # Optionales Token fuer minimale Absicherung im LAN: