> ## 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.

# Blokada Gateway

## Dlaczego

* Zapewnia, że na tym samym hoście dla jednego portu bazowego działa tylko jedna instancja Gateway; dodatkowe instancje Gateway muszą używać izolowanych profili i unikalnych portów.
* Przetrwanie awarii/SIGKILL bez pozostawiania nieaktualnych plików blokad.
* Szybkie niepowodzenie z jasnym błędem, gdy port sterujący jest już zajęty.

## Mechanizm

* Gateway najpierw uzyskuje plik blokady dla danej konfiguracji w katalogu blokad stanu i sprawdza skonfigurowany port pod kątem istniejącego procesu nasłuchującego.
* Jeśli zarejestrowany właściciel blokady już nie istnieje, port jest wolny albo blokada jest nieaktualna, uruchamianie odzyskuje blokadę i kontynuuje.
* Następnie Gateway wiąże proces nasłuchujący HTTP/WebSocket (domyślnie `ws://127.0.0.1:18789`) przy użyciu wyłącznego procesu nasłuchującego TCP.
* Jeśli wiązanie nie powiedzie się z `EADDRINUSE`, uruchamianie zgłasza `GatewayLockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`.
* Przy zamykaniu Gateway zamyka serwer HTTP/WebSocket i usuwa plik blokady.

## Sygnalizacja błędów

* Jeśli inny proces zajmuje port, uruchamianie zgłasza `GatewayLockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`.
* Inne niepowodzenia wiązania są sygnalizowane jako `GatewayLockError("failed to bind gateway socket on ws://127.0.0.1:<port>: …")`.

## Uwagi operacyjne

* Jeśli port jest zajęty przez *inny* proces, błąd jest taki sam; zwolnij port albo wybierz inny za pomocą `openclaw gateway --port <port>`.
* Pod nadzorem menedżera usług nowy proces Gateway, który wykryje istniejący zdrowy responder `/healthz`, pozostawia temu procesowi kontrolę. W systemd duplikat procesu uruchamiającego kończy działanie z kodem 78, dzięki czemu domyślne `RestartPreventExitStatus=78` zapobiega zapętleniu `Restart=always` przy konflikcie blokady lub `EADDRINUSE`. Jeśli istniejący proces nigdy nie stanie się zdrowy, ponowienia są ograniczone, a uruchamianie kończy się jasnym błędem blokady zamiast zapętlać się bez końca.
* Aplikacja macOS nadal utrzymuje własną lekką ochronę PID przed uruchomieniem Gateway; blokada czasu wykonywania jest wymuszana przez plik blokady oraz wiązanie HTTP/WebSocket.

## Powiązane

* [Wiele instancji Gateway](/pl/gateway/multiple-gateways) — uruchamianie wielu instancji z unikalnymi portami
* [Rozwiązywanie problemów](/pl/gateway/troubleshooting) — diagnozowanie `EADDRINUSE` i konfliktów portów
