Ciclo de Vida del Gateway
Ciclo de vida del Gateway en macOS (launchd)
La app macOS gestiona el Gateway via launchd por defecto y no genera
el Gateway como un proceso hijo. Primero intenta adjuntarse a un Gateway
ya en ejecución en el puerto configurado; si ninguno es alcanzable, habilita el servicio
launchd via el CLI externo ''openclaw'' (sin runtime embebido). Esto te da
auto-inicio confiable al iniciar sesión y reinicio en crashes.
El modo de proceso hijo (Gateway generado directamente por la app) no está en uso hoy.
Si necesitas acoplamiento más estrecho a la UI, ejecuta el Gateway manualmente en una terminal.
Comportamiento predeterminado (launchd)
- La app instala un LaunchAgent por usuario etiquetado ''bot.molt.gateway''
(o ''bot.molt.<profile>'' cuando se usa ''--profile''/''OPENCLAW_PROFILE''; el legacy ''com.openclaw.*'' es soportado).
- Cuando el modo Local está habilitado, la app asegura que LaunchAgent esté cargado y
inicia el Gateway si es necesario.
- Los logs se escriben en la ruta de log del gateway launchd (visible en Configuración de Debug).
Comandos comunes:
Reemplaza la etiqueta con ''bot.molt.<profile>'' cuando ejecutes un perfil nombrado.
launchctl kickstart -k gui/$UID/bot.molt.gateway launchctl bootout gui/$UID/bot.molt.gateway
PlatformsMacChildprocessPage step 01: P8
Builds de desarrollo sin firmar
''scripts/restart-mac.sh --no-sign'' es para builds locales rápidos cuando no tienes
claves de firma. Para prevenir que launchd apunte a un binario relay sin firmar, este:
- Escribe ''~/.openclaw/disable-launchagent''.
Las ejecuciones firmadas de ''scripts/restart-mac.sh'' limpian esta anulación si el marcador está
presente. Para resetear manualmente:
rm ~/.openclaw/disable-launchagent
Modo solo adjuntar
Para forzar a la app macOS a nunca instalar o gestionar launchd, ejecútala con
''--attach-only'' (o ''--no-launchd''). Esto establece ''~/.openclaw/disable-launchagent'',
así la app solo se adjunta a un Gateway ya en ejecución. Puedes alternar el mismo
comportamiento en Configuración de Debug.
Modo remoto
El modo remoto nunca inicia un Gateway local. La app usa un túnel SSH al
host remoto y conecta sobre ese túnel.
Por qué preferimos launchd
- Auto-inicio al iniciar sesión.
- Semánticas integradas de reinicio/KeepAlive.
- Logs y supervisión predecibles.
Si un verdadero modo de proceso hijo se necesita nuevamente, debería documentarse como un
modo separado y explícito solo para desarrollo.