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.
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.
- 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. - 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“. - 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.
| Beobachtung | Zuerst | Nachweis | Meist nicht |
|---|---|---|---|
| doctor grün, Tasks mit spawn/session-Fehler | Session/Sandbox/Pfad | Minimalrepro, cwd prüfen | nur Port 18789 |
| Unauthorized/Token im Client | Gateway-Auth | openclaw config get zu gateway.auth | chmod (außer Token-Datei unreadable) |
| Gateway stirbt sofort | Port/Deps | lsof -i :18789, RAM, Node | Sandbox-Logik vor Listen |
| nur bestimmte Task-Typen | Richtlinien/Allowlists | temporär lockern, vergleichen | Channel-Plugin zuerst |
| nach Upgrade | Key-Migration | strukturierter 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.
- Einstieg: dokumentieren (launchd/manuell). Vor Wechsel
openclaw gateway stopundlsof -i :18789. - Minimalrepro: kleinstes Session-Beispiel im Produktions-
cwd. Unterschied SSH vs launchd deutet auf fehlende Env-Variablen. - Besitz:
ls -leinkl. ACLs; State-Ordner mit einem Owner neu aufsetzen und uid/gid festhalten. - Logs: Gateway-Logs plus unified log (Beispiel unten) getrennt auswerten.
- Diff: nach Upgrades Sandbox/env in
openclaw.jsonvergleichen. - Regression: doctor → Minimal-Session → Produktions-Job → 24h Soak.
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.