Windows : « Quitter » arrete aussi le moteur

Le moteur tourne dans un process detache, qui survit volontairement a la
fermeture de l'interface pour garder le modele charge entre deux ouvertures.
Mais apres un « Quitter », plus rien ne le pilote et il conserve des dizaines de
Go de RAM sans aucune fenetre pour l'expliquer. La fonction de sortie du systray
appelle desormais svcStop, qui tue l'arbre (taskkill /T) donc llama-server avec.

Windows uniquement : c'est la seule plateforme ou l'app est proprietaire du
moteur. Sous Linux et macOS il appartient a systemd ou launchd, et fermer une
interface n'a pas a arreter un service systeme.

Le redemarrage apres mise a jour ne passe PAS par ce chemin (il a son propre
os.Exit), donc une MAJ ne dechargera pas le modele.
This commit is contained in:
nathaninline committed 2026-08-07 21:08:20 +02:00
1 parent 351ee25ad9
commit 672317d68c
2 files changed
+23 -3

No files matched your search

+8 -1
View File
@@ -43,6 +43,13 @@ func runTray(url string) {
}
}()
}, func() {
os.Exit(0) // « Quitter » → arrête tout le process (serveur inclus)
// « Quitter » arrête l'application : l'interface et, avec elle, le
// tunnel d'accès distant qui tourne dans ce process.
//
// Le MOTEUR, lui, n'est pas arrêté : sous macOS c'est un daemon launchd,
// que seul root peut piloter. Fermer une interface n'a pas à arrêter un
// service système. Sous Windows, où l'app est propriétaire du moteur,
// « Quitter » l'arrête bel et bien (voir sys_tray_windows.go).
os.Exit(0)
})
}