Une passerelle type OpenClaw sur Mac distant toujours sous tension tombe rarement pour un compilateur : ce sont launchd, des sockets fantômes ou deux plists au même Label. Ce manuel 2026 fixe une triade reproductible — doctor, status et journaux — pour clôturer chaque SSH avec une conclusion écrite. Croisez avec 2026 — OpenClaw : manuel pas à pas du déploiement et de l'intégration automatisée — agents multiplateformes hors ligne, droits d'exécution et collaboration GitHub Actions multi-machines pour agents et jetons, et avec 2026 — Multi-runners Mac auto-hébergés & CI parallèle : cache GitHub Actions, disque persistant, concurrence, disques pleins et nettoyage d'artefacts — FAQ pool d'entreprise si des runners partagent l'hôte.
1. Aligner doctor, status et journaux avant de toucher au plist
Doctor couvre port d'administration, jeton, répertoire de données et modules réellement présents. Lancez-le en SSH comme launchd — bash -lc ou PATH identique au plist. Le status vérifie HTTP/gRPC, TLS et l'amont depuis le Mac, pas depuis votre portable. Les journaux expliquent l'écart quand doctor est vert mais le status tremble : répertoire dédié du type ~/Library/Logs/OpenClawGateway avec rotation par taille.
2. launchd sur Mac sans présence : ce qui mord les passerelles
Les LaunchAgents utilisateur arrivent après connexion ; les LaunchDaemons root précèdent toute GUI. Une passerelle qui doit survivre au reboot sans écran appartient presque toujours à /Library/LaunchDaemons (plists et binaires root, pas de trousseau à déverrouiller). Fixez WorkingDirectory, ProgramArguments absolus, StandardOutPath/StandardErrorPath et un ThrottleInterval pour limiter les boucles de crash. launchctl print ou launchctl list plus log show --predicate 'subsystem == "com.apple.launchd"' révèle souvent PATH, droits ou sandbox avant même que la pile réseau ne parle.
Si vous restez en agent utilisateur pour un secret GUI-only, documentez compte connecté, Screen Sharing et effet des mises à jour sécurité. Gardez la même version sémantique dans plist et dépôt d'infra pour repérer les rustines locales.
3. Liaison des ports : quand « address already in use » cache deux services
Les passerelles figent des ports ; les mises à jour laissent parfois un écouteur orphelin. En SSH : lsof -nP -iTCP:<port> -sTCP:LISTEN, comparez au PID attendu via launchctl print gui/$uid ou launchctl print system. Sinon déchargez, corrigez le binaire, terminez le stray — pas de killall si un runner partage la machine. Docker Desktop peut prendre le bind hôte avant la passerelle : changez le mapping ou gardez la passerelle sur macOS nu.
4. Conflits de doubles LaunchAgent : labels dupliqués et installateurs « bienveillants »
Deux plists, même Label, dossiers différents : gagnant aléatoire au reboot (plist manuelle + service Homebrew typique). Scannez /Library/LaunchAgents, ~/Library/LaunchAgents, /Library/LaunchDaemons, ne gardez qu'une source de vérité versionnée. Sur Ventura+, bootout/bootstrap remplace les unload silencieux. Notez l'ordre exact : bootstrap en root vs utilisateur évite les surprises TCC.
5. Checklist ticket pour Mac distant toujours allumé
- Alimentation : désactivez la mise en veille du disque sur secteur, vérifiez que le Mac ne lâche pas le Wi‑Fi quand l'écran dort.
- Dérive d'horloge : activez l'heure réseau ; un décalage de quelques minutes casse TLS vers les plans de contrôle sans message limpide.
- Marge disque : les passerelles cachent transcripts et pièces jointes — alertez avant 85 % plein pour éviter des jobs launchd qui sortent en ENOSPC.
- Rotation des secrets : quand les jetons API changent, redémarrez le job et vérifiez dans les journaux l'empreinte de la nouvelle identité, pas des boucles 401 silencieuses.
- Fumée depuis l'extérieur :
curll'écouteur public par le même chemin que vos utilisateurs, pas seulement localhost. - Charge mémoire : notez la RSS du processus passerelle après 24 h ; une fuite lente finit par tuer launchd avec OOM bien avant que le CPU ne sature.
Pourquoi la classe Mac mini reste l'ancre de ce schéma
Les passerelles sanctionnent l'instabilité : chaque health check raté bruite la pagette. Les Mac mini Apple Silicon offrent du monothread solide avec ~4 W au repos — démons permanents moins chers qu'une tour au ralenti — plus Unix natif, Homebrew et macOS (Gatekeeper, SIP, FileVault) pour l'exposition sans clavier. Standardisez sur du silencieux et prévisible ; comparez les modèles sur la page d'accueil Macstripe avant d'acheter des cœurs inutilisés.
Pour exécuter ce manuel sur le meilleur compromis silence / marge, le Mac mini M4 reste le point d'équilibre — compact, discret, assez pour passerelle et CI voisine. Ouvrez la page d'accueil Macstripe pour chiffrer un nœud dédié à côté de votre pool.