# systemd-USER-Unit für Mission Control 2.0 (PARALLEL zu v1, Port 9001). # Läuft sudo-frei aus dem Home-Verzeichnis (Nordstern: kein Passwort/sudo). # Ablage: ~/.config/systemd/user/mission-control-2.service ; dann: # systemctl --user daemon-reload # systemctl --user enable --now mission-control-2 # loginctl enable-linger hitonabi # läuft auch ohne aktive Session [Unit] Description=Mission Control 2.0 (Cockpit) After=network-online.target Wants=network-online.target [Service] Type=simple WorkingDirectory=%h/mission-control-v2/backend ExecStart=%h/mission-control-v2/backend/.venv/bin/python -m uvicorn app:app --host 0.0.0.0 --port 9001 Environment=PYTHONPATH=%h/mission-control-v2 Environment=MC_PORT=9001 Environment=MC_LLAMA_SWAP_URL=http://127.0.0.1:8080 Environment=MC_CONFIG_PATH=/etc/llama-swap/config.yaml Environment=MC_MODELS_DIR=/srv/models # Geteiltes Gedächtnis = die bestehende v1-DB (Kontinuität bis/über Cutover). Environment=MC_MEMORY_DB=/srv/models/mission-control-memory.db # Gateway-Auszug (UMBAU v3 P1): /v1 roh an den eigenständigen mc2-gateway-Prozess # durchreichen. Diese Zeile entfernen (+ daemon-reload + restart) = Rollback, MC2 # bedient /v1 wieder selbst. Environment=MC_V1_UPSTREAM=http://127.0.0.1:9010 # Steward-Auszug (UMBAU v3 P2): Die Wächter-Loops (Re-Warm, Health-Sentry, Mem0-Dedupe) # laufen jetzt im eigenen Dienst mc2-steward.service — hier deshalb AUS. Diese drei # Zeilen entfernen (+ daemon-reload + restart) = Rollback (Loops wieder im Steuerpult). # Der reminders_loop bleibt bewusst HIER (teilt Datei+CRUD mit /api/reminders). Environment=MC_REWARM_ENABLED=0 Environment=MC_SENTRY_ENABLED=0 Environment=MC_MEM_DEDUPE_ENABLED=0 # KEIN MC_ENGINE_UPDATE_CMD-Override mehr: Das alte /usr/local/bin/update-llamacpp zog den # ROCm-Build nach /opt/llamacpp (totes Rollback-Dir) statt des aktiven Vulkan-Builds → Updates # liefen ins Leere ("DONE", aber nichts passierte). Ohne Override nutzt das Backend den Default # `sudo bash /deploy/update-engine.sh` (Vulkan, mit Backup/Stack-Check/Auto-Rollback). Restart=on-failure RestartSec=3 [Install] WantedBy=default.target