Ir al contenido

Manejo de comandos en segundo plano con exec y process

¿Alguna vez has lanzado un comando que tarda una eternidad y bloquea tu flujo de trabajo? Es frustrante esperar a que una tarea termine sin saber si sigue progresando o si se quedó colgada en el olvido.

Gestionar procesos que deben correr en segundo plano suele ser un problema, especialmente cuando necesitas recuperar la salida más tarde o enviar comandos adicionales mientras la tarea sigue activa. OpenClaw resuelve esto permitiendo que los comandos de shell se mantengan en memoria.

Para usar estas funciones, necesitas cumplir con lo siguiente:

  • OpenClaw instalado y en funcionamiento.
  • Acceso a las herramientas exec y process.
  • Modo elevated habilitado si necesitas ejecutar comandos directamente en el host.
  • Configuración de variables de entorno como PI_BASH_YIELD_MS si deseas ajustar los valores por defecto.

Sigue estos pasos para gestionar tus procesos en menos de 5 minutos.

Si un comando tarda más del tiempo definido en yieldMs (10 segundos por defecto), pasará automáticamente a segundo plano.

{
"tool": "exec",
"command": "sleep 5 && echo done",
"yieldMs": 1000
}

2. Iniciar una tarea directamente en segundo plano

Sección titulada «2. Iniciar una tarea directamente en segundo plano»

Puedes forzar que el comando no bloquee la ejecución usando el parámetro background.

{
"tool": "exec",
"command": "npm run build",
"background": true
}

Usa la herramienta process con la acción poll para ver si el proceso terminó y obtener los nuevos logs.

{
"tool": "process",
"action": "poll",
"sessionId": "<id_de_la_sesion>"
}

Si el comando requiere una respuesta, puedes enviar datos a stdin.

{
"tool": "process",
"action": "write",
"sessionId": "<id_de_la_sesion>",
"data": "y\n"
}

Aquí tienes soluciones para los problemas descritos en la documentación:

  • exec ignora el segundo plano: Si la herramienta process está desactivada en tu configuración, exec siempre correrá de forma síncrona e ignorará los parámetros yieldMs y background.
  • Sesiones desaparecidas: Las sesiones se guardan en memoria. Si reinicias el proceso de OpenClaw, todas las sesiones activas y terminadas se perderán porque no hay persistencia en disco.
  • No encuentras una sesión: La herramienta process está limitada al agente que la creó. Un agente no puede ver ni gestionar las sesiones iniciadas por otro.
  • Logs incompletos en el historial: Los logs de las sesiones solo se guardan en el historial del chat si ejecutas explícitamente process poll o process log y se registra el resultado.

Si necesitas ayuda personalizada, utiliza el AI Setup Assistant.

  • Configuración avanzada de tools.exec.timeoutSec y cleanupMs.
  • Uso de Child process bridging para evitar procesos huérfanos en systemd.
OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.