Ir al contenido
Guías

El exec en segundo plano y la herramienta process de OpenClaw

Cómo un comando pasa a segundo plano tras el plazo de cesión, el registro de sesiones con sus límites de salida y sus tiempos de vida, los entornos de worker que sobreviven a un turno y las nueve acciones de process, de poll a paste

7 min de lectura

El trabajo de larga duración es donde una herramienta de shell se vuelve útil o se convierte en un riesgo. La respuesta de OpenClaw es pasar el comando a segundo plano, devolver un id de sesión y darle al agente una herramienta aparte para sondearlo, alimentarlo y matarlo. Los detalles que vale la pena conocer son los que deciden si la salida sobrevive, si el proceso sobrevive y qué debe hacer el agente en lugar de dormir.

Segundo plano y retención

  • Una ejecución en primer plano devuelve directamente la salida retenida e indica cuándo la salida anterior superó el límite agregado; cuando el comando pasa a segundo plano, explícitamente o por superar el plazo de cesión, la herramienta devuelve un estado en ejecución, un id de sesión y un breve final de la salida, y las ejecuciones en segundo plano siguen heredando el tiempo de espera de exec configurado salvo que la llamada indique el suyo.
  • Devolver un id de sesión no detiene el tiempo de espera del proceso: para un servicio persistente en el gateway o en un entorno aislado, pasa el comando a segundo plano con el tiempo de espera desactivado y detenlo más tarde con la acción kill, mientras siguen aplicándose los límites de ciclo de vida del host y del worker.
  • La salida se queda en memoria, con el límite agregado por sesión como tope, hasta que la sesión se sondea o se limpia; las sesiones terminadas caducan según un tiempo de vida medido desde que terminan, y cada exec captura el ajuste de retención de su agente en el momento de ser admitido; el registro conserva como máximo 50 sesiones terminadas y dos millones de caracteres retenidos, y expulsa primero las más antiguas mientras la sesión completada más reciente conserva su agregado limitado.
  • Los ajustes existen como claves de configuración y no como variables de entorno: el plazo antes de pasar a segundo plano es de diez segundos por defecto, el tiempo de espera por llamada de 1800 segundos y el tiempo de vida de limpieza de 30 minutos; la notificación de fin de proceso está activada por defecto y encola un evento del sistema más una solicitud de heartbeat, y un ajuste adicional también puede notificar las ejecuciones correctas que no produjeron salida.
El sondeo sirve para consultar el estado bajo demanda, no para programar bucles de espera. Si el trabajo debe hacerse más tarde, usa cron.

Workers, limpieza y la herramienta process

En un nodo emparejado o en un worker en la nube respaldado por un nodo, los procesos en segundo plano pertenecen al entorno de la sesión: terminar o cancelar un turno deja en ejecución los comandos que ya estaban en segundo plano, un turno posterior en el mismo entorno puede sondearlos, alimentarlos o detenerlos, y los comandos en primer plano siguen deteniéndose cuando se cancela su turno. El worker retenido ocupa una ranura de worker del nodo, reutilizarlo no requiere ninguna ranura adicional, y en cuanto un turno termina sin comandos en segundo plano vivos, el worker sale. Mover o retirar el entorno, reemplazar su propiedad o detener el nodo también detiene sus procesos, y los handles no sobreviven a un reinicio del worker o del nodo. La limpieza es deliberadamente conservadora también en otros aspectos: para los grupos de procesos propios espera a que el sistema operativo confirme que el grupo ha desaparecido, un comando completado o una tubería de salida cerrada no demuestran por sí solos que los descendientes se hayan detenido, y una terminación forzada sin limpieza confirmada queda como incierta en lugar de notificarse como un cierre limpio.

Las nueve acciones

  • list muestra las sesiones en ejecución y terminadas con un nombre derivado, poll vacía la salida nueva e informa del estado de salida, log lee la salida agregada con paginación por líneas y pistas para recuperar la entrada, y las tres marcan una sesión como en espera de entrada solo cuando stdin sigue admitiendo escritura y la sesión lleva inactiva más allá del umbral.
  • write envía datos a stdin con un marcador de fin opcional, send-keys envía tokens de tecla explícitos o bytes a una sesión respaldada por una terminal, submit envía un retorno de carro y paste envía texto literal envuelto por defecto en bracketed paste; kill termina una sesión en ejecución, clear elimina una terminada y remove hace lo que corresponda.
  • Solo las sesiones en segundo plano se listan y se conservan, en memoria y nunca en disco, así que se pierden al reiniciar; la herramienta tiene ámbito por agente y solo ve las sesiones de ese agente, una sesión en segundo plano viva bloquea la suspensión cooperativa y el reinicio seguro del gateway hasta que se confirma la salida del proceso, y un tiempo de espera de poll superior a 30 segundos se recorta a ese valor.

La herramienta exec de OpenClaw es la herramienta que inicia estas sesiones, y las tareas en segundo plano de OpenClaw, el registro que las muestra mientras se ejecutan.

Qué hacer en lugar de dormir

La documentación es tajante sobre el antipatrón: no emules recordatorios ni seguimientos diferidos con bucles de sleep ni sondeos repetidos. Para un trabajo que empieza ahora, inícialo una vez y confía en el despertar automático al completarse cuando está activado y el comando produce salida o falla; después usa la herramienta process para los registros, el estado, la entrada o la intervención. Para un trabajo que debe ocurrir más tarde o de forma programada, el planificador es la superficie adecuada. Leer el registro antes de recuperar un comando interactivo es el otro hábito que conviene mantener, porque la transcripción, el estado de stdin y la pista de espera de entrada solo se ven juntos ahí. Las automatizaciones de OpenClaw cubre el planificador, y los entornos aislados de OpenClaw, explicados, dónde se ejecutan realmente estos comandos.

En Diali

En Diali, el asistente se ejecuta en su propio entorno de ejecución con el estado en un volumen persistente, así que un comando en segundo plano pertenece solo al entorno de ese cliente; las instantáneas diarias y la restauración en un clic están disponibles mediante el complemento Copias de seguridad (incluido en Max). OpenClaw alojado en Diali describe el asistente alojado, y la seguridad en Diali, el perímetro que rodea lo que puede ejecutar.

  • Superado el plazo de cesión, un comando devuelve un id de sesión, no un muro de salida.
  • Solo en memoria: las sesiones se pierden al reiniciar, tienen límites y caducan.
  • El despertar al completarse gana al sondeo; el planificador gana a dormir.
Empezar

Deja de leer sobre ello y crea el tuyo

Configura un agente, elige un canal y ponlo a trabajar dentro de la aplicación que ya tienes abierta.