macOS companion app

Життєвий цикл Gateway на macOS

Застосунок macOS керує Gateway через launchd за замовчуванням і не запускає Gateway як дочірній процес. Спершу він намагається під’єднатися до вже запущеного Gateway на налаштованому порту; якщо жоден недоступний, він вмикає службу launchd через зовнішній openclaw CLI (без вбудованого середовища виконання). Це дає вам надійний автозапуск під час входу в систему та перезапуск у разі збоїв.

Режим дочірнього процесу (Gateway запускається безпосередньо застосунком) сьогодні не використовується. Якщо вам потрібніший тісніший зв’язок з інтерфейсом, запускайте Gateway вручну в терміналі.

Типова поведінка (launchd)

  • Застосунок встановлює LaunchAgent для кожного користувача з міткою ai.openclaw.gateway (або ai.openclaw.<profile> під час використання --profile/OPENCLAW_PROFILE; застарілий com.openclaw.* підтримується).
  • Коли локальний режим увімкнено, застосунок гарантує, що LaunchAgent завантажений, і запускає Gateway за потреби.
  • Журнали записуються до шляху журналу gateway 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, тож застосунок лише під’єднується до вже запущеного Gateway. Таку саму поведінку можна перемкнути в налаштуваннях налагодження.

Віддалений режим

Віддалений режим ніколи не запускає локальний Gateway. Застосунок використовує SSH-тунель до віддаленого хоста й під’єднується через цей тунель.

Чому ми віддаємо перевагу launchd

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

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

Пов’язане