a9c0239f8a
Re-Warm, Health-Sentry und Mem0-Dedupe laufen als eigener Dienst
(backend/steward.py, Restart=always) statt im Steuerpult-Lifespan:
MC2-Neustarts nehmen den Waechtern nicht mehr Timing/Flanken-Gedaechtnis,
und der Sentry ueberwacht erstmals MC2 SELBST + mc2-gateway (Telegram
funktioniert auch bei totem Steuerpult; Briefkasten-Abgabe per HTTP via
MC_ANNOUNCE_HTTP, Store bleibt exklusiv beim MC2-Prozess). Warm-Nudge
nach Config-Aenderung via mtime-Watch (5 s) statt In-Process-Signal.
Reiner Konfig-Split: MC2-Unit setzt die drei ENABLED-Schalter auf 0,
Zeilen entfernen = Rollback. reminders_loop bleibt bewusst in MC2
(teilt Datei+CRUD mit /api/reminders, Zwei-Schreiber-Risiko).
Stellt ausserdem den beim Karten-Neuaufbau (ccc9a25) verlorenen
stack-postcheck-Block fuer mc2-gateway wieder her (+ Steward-Check 4c).
Baut auf feature/von-allein-und-gateway-p1 auf; Annahme schliesst P1 ein.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
45 lines
2.1 KiB
Desktop File
45 lines
2.1 KiB
Desktop File
# 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 <repo>/deploy/update-engine.sh` (Vulkan, mit Backup/Stack-Check/Auto-Rollback).
|
|
Restart=on-failure
|
|
|
|
RestartSec=3
|
|
|
|
[Install]
|
|
WantedBy=default.target
|