Platforms overview
Linux-App
Der Gateway wird unter Linux vollständig unterstützt. Node ist die empfohlene Runtime. Bun wird für den Gateway nicht empfohlen (WhatsApp-/Telegram-Fehler).
Native Linux-Begleit-Apps sind geplant. Beiträge sind willkommen, wenn Sie beim Bau einer solchen App helfen möchten.
Schnellstart für Einsteiger (VPS)
- Installieren Sie Node 24 (empfohlen; Node 22 LTS, derzeit
22.19+, funktioniert aus Kompatibilitätsgründen weiterhin) npm i -g openclaw@latestopenclaw onboard --install-daemon- Von Ihrem Laptop aus:
ssh -N -L 18789:127.0.0.1:18789 <user>@<host> - Öffnen Sie
http://127.0.0.1:18789/und authentifizieren Sie sich mit dem konfigurierten gemeinsamen Secret (standardmäßig Token; Passwort, wenn Siegateway.auth.mode: "password"gesetzt haben)
Vollständige Linux-Server-Anleitung: Linux-Server. Schrittweises VPS-Beispiel: exe.dev
Installation
- Erste Schritte
- Installation & Updates
- Optionale Abläufe: Bun (experimentell), Nix, Docker
Gateway
Gateway-Dienst installieren (CLI)
Verwenden Sie eines hiervon:
openclaw onboard --install-daemonOder:
openclaw gateway installOder:
openclaw configureWählen Sie bei der Eingabeaufforderung Gateway-Dienst aus.
Reparieren/migrieren:
openclaw doctorSystemsteuerung (systemd-Benutzereinheit)
OpenClaw installiert standardmäßig einen systemd-Benutzerdienst. Verwenden Sie einen Systemdienst für gemeinsam genutzte oder dauerhaft laufende Server. openclaw gateway install und
openclaw onboard --install-daemon rendern bereits die aktuelle kanonische Einheit
für Sie; schreiben Sie nur dann eine von Hand, wenn Sie ein benutzerdefiniertes System-/Service-Manager-
Setup benötigen. Die vollständige Dienstanleitung finden Sie im Gateway-Runbook.
Minimales Setup:
Erstellen Sie ~/.config/systemd/user/openclaw-gateway[-<profile>].service:
[Unit]Description=OpenClaw Gateway (profile: <profile>, v<version>)After=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.targetAktivieren Sie ihn:
systemctl --user enable --now openclaw-gateway[-<profile>].serviceSpeicherdruck und OOM-Kills
Unter Linux wählt der Kernel ein OOM-Opfer aus, wenn einem Host, einer VM oder einer Container-cgroup der Arbeitsspeicher ausgeht. Der Gateway kann ein schlechtes Opfer sein, weil er langlebige Sitzungen und Kanalverbindungen besitzt. OpenClaw bevorzugt daher, wenn möglich, transiente Kindprozesse vor dem Gateway zu beenden.
Für berechtigte Linux-Kindprozesse startet OpenClaw den Kindprozess über einen kurzen
/bin/sh-Wrapper, der das eigene oom_score_adj des Kindprozesses auf 1000 erhöht und dann
per exec den eigentlichen Befehl ausführt. Dies ist ein unprivilegierter Vorgang, weil der Kindprozess
nur seine eigene Wahrscheinlichkeit erhöht, durch OOM beendet zu werden.
Abgedeckte Kindprozess-Bereiche umfassen:
- vom Supervisor verwaltete Befehlskindprozesse,
- PTY-Shell-Kindprozesse,
- MCP-stdio-Server-Kindprozesse,
- von OpenClaw gestartete Browser-/Chrome-Prozesse.
Der Wrapper ist nur für Linux verfügbar und wird übersprungen, wenn /bin/sh nicht verfügbar ist. Er wird
außerdem übersprungen, wenn die Kindprozess-Umgebung OPENCLAW_CHILD_OOM_SCORE_ADJ=0, false,
no oder off setzt.
So überprüfen Sie einen Kindprozess:
cat /proc/<child-pid>/oom_score_adjDer erwartete Wert für abgedeckte Kindprozesse ist 1000. Der Gateway-Prozess sollte
seinen normalen Wert behalten, üblicherweise 0.
Die empfohlene systemd-Einheit setzt außerdem OOMPolicy=continue. Dadurch bleibt die
Gateway-Einheit aktiv, wenn ein transienter Kindprozess vom OOM-Killer ausgewählt wird;
der Kindbefehl oder die Sitzung kann fehlschlagen und den Fehler melden, ohne dass systemd
den gesamten Gateway-Dienst als fehlgeschlagen markiert und alle Kanäle neu startet.
Dies ersetzt keine normale Speicherabstimmung. Wenn ein VPS oder Container wiederholt
Kindprozesse beendet, erhöhen Sie das Speicherlimit, reduzieren Sie die Parallelität oder fügen Sie stärkere
Ressourcenkontrollen wie systemd MemoryMax= oder Speicherlimits auf Container-Ebene hinzu.