macOS companion app

Жизненный цикл Gateway в macOS

Приложение macOS по умолчанию управляет Gateway через launchd и не запускает Gateway как дочерний процесс. Сначала оно пытается подключиться к уже запущенному Gateway на настроенном порте; если подключиться не удаётся, оно включает службу launchd через внешний CLI openclaw (без встроенной среды выполнения). Это обеспечивает надёжный автоматический запуск при входе в систему и перезапуск после сбоев.

Режим дочернего процесса (Gateway запускается непосредственно приложением) сейчас не используется. Если требуется более тесная интеграция с пользовательским интерфейсом, запустите Gateway вручную в терминале.

Поведение по умолчанию (launchd)

  • Приложение устанавливает пользовательский LaunchAgent с меткой ai.openclaw.gateway (или ai.openclaw.<profile> при использовании --profile/OPENCLAW_PROFILE).
  • Когда включён локальный режим, приложение обеспечивает загрузку LaunchAgent и при необходимости запускает Gateway.
  • Журналы записываются по пути журнала Gateway службы launchd (его можно посмотреть в настройках отладки).

Часто используемые команды:

bash
launchctl kickstart -k gui/$UID/ai.openclaw.gatewaylaunchctl bootout gui/$UID/ai.openclaw.gateway

При использовании именованного профиля замените метку на ai.openclaw.<profile>.

Неподписанные сборки для разработки

scripts/restart-mac.sh --no-sign предназначен для быстрых локальных сборок без ключей подписи. Чтобы launchd не ссылался на неподписанный исполняемый файл ретранслятора, он записывает ~/.openclaw/disable-launchagent.

Подписанные запуски scripts/restart-mac.sh удаляют это переопределение, если присутствует маркер. Для сброса вручную выполните:

bash
rm ~/.openclaw/disable-launchagent

Режим только подключения

Чтобы приложение macOS никогда не устанавливало launchd и не управляло им, запустите его с --attach-only (или --no-launchd). При этом устанавливается ~/.openclaw/disable-launchagent, поэтому приложение только подключается к уже запущенному Gateway. Это же поведение можно включить в настройках отладки.

Удалённый режим

Удалённый режим никогда не запускает локальный Gateway. Приложение создаёт SSH-туннель к удалённому узлу и подключается через этот туннель.

Почему мы предпочитаем launchd

  • Автоматический запуск при входе в систему.
  • Встроенные механизмы перезапуска и KeepAlive.
  • Предсказуемое ведение журналов и управление процессом.

Если настоящий режим дочернего процесса когда-либо снова понадобится, его следует документировать как отдельный явный режим только для разработки.

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

Was this useful?
On this page

On this page