> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Блокировка Gateway

# Блокировка Gateway

Последнее обновление: 2025-12-11

## Зачем

* Обеспечить запуск только одного экземпляра шлюза на базовый порт на том же хосте; дополнительные шлюзы должны использовать изолированные профили и уникальные порты.
* Переживать аварийные завершения/SIGKILL без оставления устаревших файлов блокировки.
* Быстро завершаться с понятной ошибкой, когда управляющий порт уже занят.

## Механизм

* Шлюз привязывает слушатель WebSocket (по умолчанию `ws://127.0.0.1:18789`) сразу при запуске, используя эксклюзивный TCP‑слушатель.
* Если привязка не удаётся с `EADDRINUSE`, запуск выбрасывает `GatewayLockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`.
* ОС автоматически освобождает слушатель при любом завершении процесса, включая аварии и SIGKILL — отдельный файл блокировки или шаг очистки не требуется.
* При завершении работы шлюз закрывает сервер WebSocket и базовый HTTP‑сервер, чтобы оперативно освободить порт.

## Поверхность ошибок

* Если порт удерживается другим процессом, запуск выбрасывает `GatewayLockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`.
* Прочие ошибки привязки проявляются как `GatewayLockError("failed to bind gateway socket on ws://127.0.0.1:<port>: …")`.

## Эксплуатационные примечания

* Если порт занят *другим* процессом, ошибка будет той же; освободите порт или выберите другой с помощью `openclaw gateway --port <port>`.
* Приложение для macOS по‑прежнему поддерживает собственную лёгкую защиту по PID перед запуском шлюза; блокировка времени выполнения обеспечивается привязкой WebSocket.
