macOS companion app

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

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

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

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

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

Распространенные команды:

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

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

Неподписанные dev-сборки

scripts/restart-mac.sh --no-sign предназначен для быстрых локальных сборок, когда у вас нет ключей подписи. Чтобы launchd не указывал на неподписанный relay-бинарный файл, он:

  • Записывает ~/.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