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

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

## Зачем

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

## Механизм

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

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

* Если порт удерживает другой процесс, запуск выбрасывает `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>`.
* Под управлением сервисного супервизора новый процесс Gateway, который видит существующий исправный ответчик `/healthz`, оставляет управление за этим процессом. В systemd дублирующий запускатель завершается с кодом 78, поэтому значение по умолчанию `RestartPreventExitStatus=78` не дает `Restart=always` зациклиться при конфликте блокировки или `EADDRINUSE`. Если существующий процесс так и не становится исправным, число повторных попыток ограничено, и запуск завершается с понятной ошибкой блокировки вместо бесконечного цикла.
* Приложение macOS по-прежнему поддерживает собственную легковесную PID-защиту перед запуском Gateway; блокировка времени выполнения обеспечивается файлом блокировки и привязкой HTTP/WebSocket.

## Связанные разделы

* [Несколько Gateway](/ru/gateway/multiple-gateways) — запуск нескольких экземпляров с уникальными портами
* [Устранение неполадок](/ru/gateway/troubleshooting) — диагностика `EADDRINUSE` и конфликтов портов
