2026 OpenClaw sessions_spawn und Sandbox-Sitzungen: Diagnose auf Mac-Cloud

Das Gateway läuft, aber Kindprozesse oder Sandbox-Schritte scheitern—häufig wegen Arbeitsverzeichnis, UID, Dateirechten oder Richtlinien. Lesen Sie parallel Erstes Deploy, Fehlerliste und Hardening.

OpenClaw Session-Diagnose auf Mac-Cloud

Inhalt

1. Drei Muster: Gateway läuft noch lange nicht heißt spawn ist gesund

Nach Erstdeploy und Fehlerliste verwischen Teams oft die Grenze: der Dienstprozess lebt, aber Sitzungen oder Sandbox-Schritte scheitern. Logzeilen mit sessions_spawn zeigen eine andere Schicht als das Binden von Port 18789. Parallel Hardening lesen, damit Richtlinien und Pfade in einem Raster bleiben.

  1. cwd- und Pfaddrift: Interaktive SSH-Sitzungen starten in ~/proj, launchd-Jobs oft in / oder einem anderen Home. Kinderprozesse erben leere oder nicht beschreibbare cwd-Werte. APFS ist standardmäßig case-insensitive—Pfade von Linux-Hosts erzeugen subtile Kollisionen.
  2. UID und Besitz: Cache- oder Repo-Verzeichnisse mit falschem Owner führen zu Sandbox-EACCES. Wer per Hand startet, läuft unter einem anderen Konto als launchd—Fehler wirken „zufällig“.
  3. Sandbox-Politik: verschärfte Egress- oder Subprocess-Regeln blockieren legitime Automatisierung, während das Dashboard weiter antwortet.

Benchmark: messen Sie nach Kaltstart nur mit launchd die Zeit bis zum ersten erfolgreichen Spawn. Hilft SSH sofort, fehlt Umgebungsvererbung oder WorkingDirectory.

2. Matrix: Session vs Gateway vs Port

Die Spalte „Meist nicht“ spart Zeit: chmod hilft selten bei Token-Fehlern; Sandbox-Tuning behebt keinen sofortigen Prozessexit.

BeobachtungZuerstNachweisMeist nicht
doctor grün, Tasks mit spawn/session-FehlerSession/Sandbox/PfadMinimalrepro, cwd prüfennur Port 18789
Unauthorized/Token im ClientGateway-Authopenclaw config get zu gateway.authchmod (außer Token-Datei unreadable)
Gateway stirbt sofortPort/Depslsof -i :18789, RAM, NodeSandbox-Logik vor Listen
nur bestimmte Task-TypenRichtlinien/Allowliststemporär lockern, vergleichenChannel-Plugin zuerst
nach UpgradeKey-Migrationstrukturierter diff von openclaw.json„Zufällige“ Instabilität

3. Fünf Schritte plus Regression

Gleicher Unix-User wie Produktion. Sonst ist jeder Spawn-Test ungültig.

  1. Einstieg: dokumentieren (launchd/manuell). Vor Wechsel openclaw gateway stop und lsof -i :18789.
  2. Minimalrepro: kleinstes Session-Beispiel im Produktions-cwd. Unterschied SSH vs launchd deutet auf fehlende Env-Variablen.
  3. Besitz: ls -le inkl. ACLs; State-Ordner mit einem Owner neu aufsetzen und uid/gid festhalten.
  4. Logs: Gateway-Logs plus unified log (Beispiel unten) getrennt auswerten.
  5. Diff: nach Upgrades Sandbox/env in openclaw.json vergleichen.
  6. Regression: doctor → Minimal-Session → Produktions-Job → 24h Soak.
whoami id launchctl print gui/$(id -u) | head -n 20 log show --style syslog --last 30m --predicate 'process == "node" OR eventMessage CONTAINS "sandbox"' | tail -n 80
Hinweis: In der launchd-Plist WorkingDirectory setzen—ohne dieses Feld ist das cwd der Kinder leer und Spawns scheitern leise.

Langfristig auf Mac-Cloud: Eintrag+cwd+Owner im gleichen Runbook wie CI pflegen.

4. Messbare Signale

① launchd liefert schmalere PATH/HOME als Login-Shells. ② APFS-Schreibweisen und Cross-OS-Sync. ③ Speicher: kurze RSS-Spitzen >2 GiB können OOM (Exit 137) als Spawn-Fehler maskieren. ④ Zwei Gateways auf einem State-Ordner erzeugen Wettlauf-Symptome. ⑤ Audit: jede Sandbox-Verschärfung in einer Zeile dokumentieren.

5. Von Container-Lücken zu nativem macOS

Docker/Linux-Demos addieren Volume-Rechte und Signalsemantik—Spawn-Probleme werden doppelt erklärt. Laptops schlafen und ändern Pfade. Generische Linux-VPS-Runbooks decken launchd und Dateibesitz selten ab.

Für stabile UID, beschreibbare State-Pfade und 7×24-Betrieb ist ein dedizierter Mac-Cloud-Host meist schlanker als Schichten zu stapeln.

VPSMAC M4 Mietknoten mit versionierten Plists, festem User und dokumentierter Sandbox halten Session-Triage in einem OS. Optional SLO: p95-Latenz für ersten erfolgreichen Spawn nach Reboot—nur HTTP auf 18789 zu überwachen reicht nicht, wenn Hintergrundtasks andere Syscalls nutzen.

6. FAQ

Spawn schlägt fehl, Gateway lebt

Zuerst cwd, User, Besitz; pwd über denselben Mechanismus wie Produktion; plist-WorkingDirectory gegen SSH-cwd halten; env vs launchctl vergleichen.

Nur nach Upgrade

Key-Umbenennungen, verschärfte Defaults—diff gegen letzte gute openclaw.json und Release-Notes zu OPENCLAW_*.

Mehrere Instanzen

Kein gemeinsames State-Verzeichnis; getrennte Config-Roots, Ports oder Hosts.