Skip to main content
OpenClaw выполняет команды оболочки с помощью инструмента exec и хранит длительно выполняющиеся задачи в памяти. Инструмент process управляет этими фоновыми сеансами.

Инструмент exec

Параметры: Поведение:
  • Запуски на переднем плане возвращают вывод напрямую.
  • При переводе в фоновый режим (явно или по тайм-ауту yieldMs) инструмент возвращает status: "running" + sessionId и краткий фрагмент конца вывода.
  • Запуски в фоновом режиме и с yieldMs наследуют tools.exec.timeoutSec, если в вызове явно не передан timeout.
  • Вывод остаётся в памяти, пока сеанс не будет опрошен или очищен.
  • Если инструмент process запрещён, exec выполняется синхронно и игнорирует yieldMs/background.
  • Порождаемые команды exec получают OPENCLAW_SHELL=exec для контекстно-зависимых правил оболочки/профиля.
  • Для длительной работы, начинающейся сейчас: запустите её один раз и полагайтесь на автоматическое уведомление о завершении (если оно включено), когда команда выдаст вывод или завершится с ошибкой.
  • Если автоматическое уведомление о завершении недоступно или необходимо подтвердить успешное завершение команды без вывода, выполните опрос с помощью process.
  • Не имитируйте напоминания или отложенные последующие действия циклами sleep либо повторным опросом — для будущих задач используйте cron.

Переопределения через переменные окружения

Конфигурация (предпочтительнее переопределений через переменные окружения)

Связывание дочерних процессов

При порождении длительно выполняющихся дочерних процессов вне инструментов exec/process (перезапуски CLI, вспомогательные процессы Gateway) подключайте вспомогательный мост дочерних процессов, чтобы сигналы завершения перенаправлялись, а обработчики отсоединялись при выходе/ошибке. Это предотвращает появление осиротевших процессов в systemd и обеспечивает согласованное завершение работы на разных платформах.

Инструмент process

Действия: Примечания:
  • В списке сохраняются только фоновые сеансы — исключительно в памяти, не на диске. При перезапуске процесса сеансы теряются.
  • Активный фоновый сеанс блокирует совместное приостановление хоста и безопасный перезапуск Gateway, пока владелец процесса не подтвердит его фактическое завершение.
  • process remove может скрыть выполняющийся сеанс сразу после запроса завершения; приостановление и перезапуск остаются заблокированными до подтверждения выхода.
  • Журналы сеансов сохраняются в истории чата, только если выполнить process poll/log и результат инструмента будет записан.
  • process действует в рамках отдельного агента; он видит только сеансы, запущенные этим агентом.
  • Используйте poll/log для получения статуса, журналов или подтверждения завершения, когда автоматическое уведомление о завершении недоступно.
  • Перед восстановлением интерактивного CLI используйте log, чтобы одновременно видеть текущую расшифровку, состояние stdin и подсказку об ожидании ввода.
  • Используйте write/send-keys/submit/paste/kill, когда требуется ввод или вмешательство.
  • process list включает вычисляемое значение name (командный глагол + цель) для быстрого просмотра.
  • process list, poll и log сообщают waitingForInput, только когда stdin сеанса всё ещё доступен для записи и сеанс бездействует дольше порога ожидания ввода (по умолчанию 15000 мс, OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS).
  • process log использует построчные offset/limit. Если оба параметра не указаны, возвращаются последние 200 строк с подсказкой по постраничному просмотру. Если задан offset, а limit — нет, возвращаются строки от offset до конца (без ограничения в 200 строк).
  • timeout в poll ожидает до указанного количества миллисекунд перед возвратом; значения свыше 30000 ограничиваются до 30000.
  • Опрос предназначен для получения статуса по запросу, а не для планирования циклов ожидания. Если работа должна выполняться позднее, используйте cron.

Примеры

Запустить длительную задачу и опросить её позднее:
Проверить интерактивный сеанс перед отправкой ввода:
Немедленно запустить в фоновом режиме:
Отправить данные в stdin:
Отправить клавиши PTY:
Отправить текущую строку:
Вставить буквальный текст:

Связанные материалы