Saltar al contenido
Grafico de infraestructura local para correr agentes en Raspberry Pi, mini servidor o VPS
Lección 4 de 5Gratis16 min

Corre el agente como servicio 24/7

Usa systemd para reiniciar el agente si falla

Última actualización: 24 de septiembre de 2026

Un proceso en una sesión SSH muere cuando cierras la terminal o se cae la red. Un servicio de systemd vuelve a levantarlo. Esa es la diferencia entre "lo probé" y "responde a las 3 de la mañana".

OpenClaw

Si usaste:

Daemon OpenClaw
$openclaw onboard --install-daemon

OpenClaw debería haber instalado un servicio de usuario. Verifica con:

Estado OpenClaw
$openclaw gateway status openclaw doctor

Si openclaw gateway status dice que el gateway no está activo, no inventes un unit a ciegas: vuelve a correr el onboarding con --install-daemon o revisa la documentación de tu versión. Un unit escrito a mano con el binario equivocado es la causa más común de "se instaló pero no contesta".

Para ver logs del daemon de usuario:

Logs de OpenClaw
$openclaw logs --follow

Para reiniciarlo después de un cambio: openclaw gateway restart.

También necesitas linger para que el servicio siga vivo sin sesión SSH:

Mantener servicios de usuario sin sesión
$loginctl enable-linger $USER

Hermes gateway con systemd

Hermes crea el servicio por ti. Primero prueba el gateway en primer plano con hermes gateway (lo paras con Ctrl + C). Cuando responda, instálalo como servicio de usuario:

Instalar el gateway como servicio
$hermes gateway install loginctl enable-linger $USER hermes gateway status

hermes gateway install crea el servicio hermes-gateway.service de systemd. No escribas el unit a mano: si apunta a un binario viejo o al comando equivocado, se ve «activo» y no es el gateway que configuraste.

enable-linger es el detalle que falta en muchas Pis. Sin linger, systemd mata los servicios de usuario cuando no hay sesión SSH. El agente «funciona mientras estoy conectado» y muere al colgar.

Controlarlo y ver logs:

Reiniciar y ver logs del servicio
$hermes gateway restart systemctl --user status hermes-gateway.service journalctl --user -u hermes-gateway.service -f

hermes gateway restart espera a que terminen las respuestas en curso antes de reiniciar. Un servicio reiniciado cubre un crash del proceso, pero no una microSD llena ni un token inválido: ahí el proceso puede «estar vivo» y seguir fallando.

Prueba de verdad (no solo status)

  1. systemctl --user is-active ... debe decir active.
  2. Manda un mensaje desde el teléfono.
  3. Cierra SSH.
  4. Espera un minuto. Manda otro mensaje.
  5. Reinicia la Pi con sudo reboot y, cuando vuelva, manda un tercero.

Si el paso 4 o 5 falla, el problema casi nunca es el modelo. Revisa linger y los logs del servicio.

Lo que no debes hacer

  • Correr el gateway en screen o tmux y llamarlo 24/7.
  • Usar sudo systemctl para un binario instalado en tu $HOME sin ajustar usuario y rutas.
  • Exponer el puerto del gateway a internet para "probarlo desde el celular fuera de casa" sin lista de usuarios.
🧠Verifica tu conocimiento

¿Por qué hace falta loginctl enable-linger en un servicio de usuario?