OpenClaw führt Shell-Befehle über dasDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
exec-Tool aus und hält lang laufende Aufgaben im Arbeitsspeicher. Das process-Tool verwaltet diese Hintergrundsitzungen.
exec-Tool
Wichtige Parameter:command(erforderlich)yieldMs(Standard 10000): nach dieser Verzögerung automatisch in den Hintergrund verschiebenbackground(bool): sofort im Hintergrund ausführentimeout(Sekunden, Standardtools.exec.timeoutSec): den Prozess nach diesem Timeout beenden; setzen Sietimeout: 0nur, um das Timeout des exec-Prozesses für diesen Aufruf zu deaktivierenelevated(bool): außerhalb der Sandbox ausführen, wenn der erhöhte Modus aktiviert/erlaubt ist (gatewaystandardmäßig odernode, wenn das exec-Zielnodeist)- Benötigen Sie eine echte TTY? Setzen Sie
pty: true. workdir,env
- Vordergrundausführungen geben die Ausgabe direkt zurück.
- Wenn in den Hintergrund verschoben (explizit oder per Timeout), gibt das Tool
status: "running"+sessionIdund ein kurzes Ende der Ausgabe zurück. - Hintergrund- und
yieldMs-Ausführungen übernehmentools.exec.timeoutSec, sofern der Aufruf kein explizitestimeoutangibt. - Die Ausgabe wird im Arbeitsspeicher behalten, bis die Sitzung abgefragt oder gelöscht wird.
- Wenn das
process-Tool nicht erlaubt ist, läuftexecsynchron und ignoriertyieldMs/background. - Gestartete exec-Befehle erhalten
OPENCLAW_SHELL=execfür kontextbewusste Shell-/Profilregeln. - Für lang laufende Arbeit, die jetzt startet, starten Sie sie einmal und verlassen Sie sich auf das automatische Abschluss-Wecken, wenn es aktiviert ist und der Befehl Ausgabe erzeugt oder fehlschlägt.
- Wenn das automatische Abschluss-Wecken nicht verfügbar ist oder Sie eine Bestätigung für
stillen Erfolg bei einem Befehl benötigen, der ohne Ausgabe sauber beendet wurde, verwenden Sie
process, um den Abschluss zu bestätigen. - Emulieren Sie Erinnerungen oder verzögerte Nachfassaktionen nicht mit
sleep-Schleifen oder wiederholtem Polling; verwenden Sie Cron für zukünftige Arbeit.
Child-Process-Bridging
Wenn Sie lang laufende Child-Prozesse außerhalb der exec-/process-Tools starten (zum Beispiel CLI-Neustarts oder Gateway-Helfer), binden Sie den Child-Process-Bridge-Helfer ein, damit Beendigungssignale weitergeleitet und Listener bei Exit/Fehler entfernt werden. Dadurch werden verwaiste Prozesse unter systemd vermieden, und das Shutdown-Verhalten bleibt plattformübergreifend konsistent. Umgebungsüberschreibungen:PI_BASH_YIELD_MS: Standard-Wartezeit (ms)PI_BASH_MAX_OUTPUT_CHARS: Ausgabelimit im Arbeitsspeicher (Zeichen)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: Limit für ausstehende stdout/stderr-Ausgabe pro Stream (Zeichen)PI_BASH_JOB_TTL_MS: TTL für abgeschlossene Sitzungen (ms, begrenzt auf 1m–3h)OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS: Schwellenwert für Leerlaufausgabe, bevor beschreibbare Hintergrundsitzungen als wahrscheinlich auf Eingabe wartend markiert werden (Standard 15000 ms)
tools.exec.backgroundMs(Standard 10000)tools.exec.timeoutSec(Standard 1800)tools.exec.cleanupMs(Standard 1800000)tools.exec.notifyOnExit(Standard true): stellt ein Systemereignis in die Warteschlange + fordert einen Heartbeat an, wenn ein exec im Hintergrund beendet wird.tools.exec.notifyOnExitEmptySuccess(Standard false): wenn true, werden auch Abschlussereignisse für erfolgreiche Hintergrundläufe in die Warteschlange gestellt, die keine Ausgabe erzeugt haben.
process-Tool
Aktionen:list: laufende + abgeschlossene Sitzungenpoll: neue Ausgabe für eine Sitzung leeren (meldet auch den Exit-Status)log: die aggregierte Ausgabe lesen und Hinweise zur Eingabewiederherstellung anzeigen (unterstütztoffset+limit)write: stdin senden (data, optionaleof)send-keys: explizite Tastentokens oder Bytes an eine PTY-gestützte Sitzung sendensubmit: Eingabetaste / Wagenrücklauf an eine PTY-gestützte Sitzung sendenpaste: Literaltext senden, optional in Bracketed-Paste-Modus eingeschlossenkill: eine Hintergrundsitzung beendenclear: eine abgeschlossene Sitzung aus dem Arbeitsspeicher entfernenremove: beenden, wenn laufend, andernfalls löschen, wenn abgeschlossen
- Nur Hintergrundsitzungen werden aufgelistet/im Arbeitsspeicher persistiert.
- Sitzungen gehen bei einem Prozessneustart verloren (keine Persistenz auf Datenträger).
- Sitzungsprotokolle werden nur im Chatverlauf gespeichert, wenn Sie
process poll/logausführen und das Tool-Ergebnis aufgezeichnet wird. processist pro Agent abgegrenzt; es sieht nur Sitzungen, die von diesem Agent gestartet wurden.- Verwenden Sie
poll/logfür Status, Protokolle, Bestätigung bei stillem Erfolg oder Abschlussbestätigung, wenn automatisches Abschluss-Wecken nicht verfügbar ist. - Verwenden Sie
log, bevor Sie eine interaktive CLI wiederherstellen, damit das aktuelle Transkript, der stdin-Zustand und der Eingabewartehinweis zusammen sichtbar sind. - Verwenden Sie
write/send-keys/submit/paste/kill, wenn Sie Eingabe oder Eingreifen benötigen. process listenthält einen abgeleitetenname(Befehlsverb + Ziel) für schnelles Durchsehen.process list,pollundlogmeldenwaitingForInputnur, wenn die Sitzung weiterhin beschreibbares stdin hat und länger als der Eingabewarte-Schwellenwert im Leerlauf war.process logverwendet zeilenbasiertesoffset/limit.- Wenn sowohl
offsetals auchlimitfehlen, gibt es die letzten 200 Zeilen zurück und enthält einen Hinweis zur Seitennavigation. - Wenn
offsetangegeben ist undlimitfehlt, gibt es aboffsetbis zum Ende zurück (nicht auf 200 begrenzt). - Polling dient dem Status auf Abruf, nicht der Planung von Warteschleifen. Wenn die Arbeit später stattfinden soll, verwenden Sie stattdessen Cron.