mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +02:00
Moteur : un refus de LOAD_GUARD n'est plus relancé en boucle par systemd
Le refus d'un chargement résident trop gros pour la RAM faisait sortir « loki serve » en erreur (code 1) ; l'unité loki-engine (Restart=on-failure, RestartSec=3) le relançait toutes les trois secondes, sans fin, pour un échec qui ne dépend que du preset et de la machine. - Le refus sort avec un code dédié, 78 (EX_CONFIG) ; mustExit respecte le code porté par l'erreur, toutes les autres gardent 1. - L'unité écrite par « loki install » porte RestartPreventExitStatus=78 ; les autres échecs restent relancés. - Unité d'une version précédente (« loki update » ne réécrit pas les unités, il tourne sans droits root) : reconnue à coup sûr (parent systemd, INVOCATION_ID, unité et compléments lus sans la directive), le refus y sort sans erreur pour ne pas boucler, avec la marche à suivre au journal. Même chose sous launchd, qui relance toute sortie non nulle. - Le moteur d'essai de l'optimiseur garde toujours le vrai code. Le conteneur ne relance jamais le moteur de lui-même : rien à y changer, la raison reste au journal et l'interface la montre (modelLoadError). - Tests : directive reconnue (et seulement elle), code de sortie du refus, enveloppé ou non, unité générée (Linux). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d50c8a56c6
commit
a4db6d4da1
9 files changed
+194
-3
No files matched your search
@@ -48,6 +48,15 @@ func unitArgs() map[string]string {
|
||||
return map[string]string{serviceName(): "serve", uiUnitName: "web"}
|
||||
}
|
||||
|
||||
// supervisorRestartsRefusal : sous launchd (le LaunchDaemon du moteur, que
|
||||
// launchd désigne par XPC_SERVICE_NAME), KeepAlive/SuccessfulExit=false relance
|
||||
// TOUTE sortie non nulle — aucune exception par code n'existe. Un refus de
|
||||
// LOAD_GUARD y sort donc sans erreur (voir loadGuardRefusal). L'app de bureau
|
||||
// lance le moteur elle-même et ne le relance pas : code normal.
|
||||
func supervisorRestartsRefusal() (bool, string) {
|
||||
return os.Getenv("XPC_SERVICE_NAME") == "com.loki."+serviceName(), ""
|
||||
}
|
||||
|
||||
func installServices(targetUser, lokiHome string) error {
|
||||
exe := installedExePath()
|
||||
for name, arg := range unitArgs() {
|
||||
|
||||
Reference in new issue
Block a user