Жизненный цикл Gateway (шлюза) на macOS
Приложение для macOS по умолчанию управляет Gateway (шлюзом) через launchd и не запускает Gateway как дочерний процесс. Сначала оно пытается подключиться к уже запущенному Gateway на настроенном порту; если доступного экземпляра нет, приложение включает сервис launchd через внешний CLIopenclaw (без встроенного runtime). Это обеспечивает надёжный автозапуск
при входе в систему и перезапуск при сбоях.
Режим дочернего процесса (когда Gateway запускается непосредственно приложением) в настоящее время не используется.
Если требуется более тесная связка с UI, запускайте Gateway вручную в терминале.
Поведение по умолчанию (launchd)
- Приложение устанавливает LaunchAgent для пользователя с меткой
bot.molt.gateway(илиbot.molt.<profile>при использовании--profile/OPENCLAW_PROFILE; поддерживается устаревшийcom.openclaw.*). - Когда включён локальный режим, приложение гарантирует, что LaunchAgent загружен, и при необходимости запускает Gateway.
- Логи записываются по пути логов gateway для launchd (видно в Debug Settings).
bot.molt.<profile> при запуске именованного профиля.
Неподписанные dev‑сборки
scripts/restart-mac.sh --no-sign предназначен для быстрых локальных сборок, когда у вас нет
ключей подписи. Чтобы предотвратить указание launchd на неподписанный бинарник relay, он:
- Выполняет запись
~/.openclaw/disable-launchagent.
scripts/restart-mac.sh очищают это переопределение, если маркер
присутствует. Для ручного сброса:
Режим только подключения
Чтобы принудительно заставить приложение для macOS никогда не устанавливать и не управлять launchd, запускайте его с--attach-only (или --no-launchd). Это устанавливает ~/.openclaw/disable-launchagent,
поэтому приложение только подключается к уже запущенному Gateway. Аналогичное
поведение можно переключить в Debug Settings.
Удалённый режим
Удалённый режим никогда не запускает локальный Gateway. Приложение использует SSH‑туннель к удалённому хосту и подключается через этот туннель.Почему мы предпочитаем launchd
- Автозапуск при входе в систему.
- Встроенная семантика перезапуска/KeepAlive.
- Предсказуемые логи и надзор.