Сопутствующее приложение для macOS

Жизненный цикл шлюза

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

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

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

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

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

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

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

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

  • Создает файл ~/.openclaw/disable-launchagent.

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

rm ~/.openclaw/disable-launchagent

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

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

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

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

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

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

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

CanvasПроверки работоспособности