Un proceso en una sesion SSH muere cuando cierras la terminal o se cae la red. Un servicio de systemd vuelve a levantarlo. Esa es la diferencia entre "lo probe" y "responde a las 3 de la manana".
OpenClaw
Si usaste:
OpenClaw deberia haber instalado un servicio de usuario. Verifica con:
Si el status dice que el daemon no esta activo, no inventes un unit a ciegas: vuelve a correr el onboarding con --install-daemon o revisa la documentacion de tu version. Un unit escrito a mano con el binario equivocado es la causa mas comun de "se instalo pero no contesta".
Para ver logs del daemon de usuario:
El nombre exacto del unit puede variar. Lista los units de usuario si no aparece:
Hermes gateway con systemd
Crea un servicio de usuario. Sustituye ExecStart por la ruta real de which hermes:
# ~/.config/systemd/user/hermes-gateway.service
[Unit]
Description=Hermes Gateway
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=%h/.local/bin/hermes gateway start
Restart=always
RestartSec=10
WorkingDirectory=%h/agents
Environment=HOME=%h
[Install]
WantedBy=default.target
Restart=always cubre un crash del proceso. No cubre una microSD llena ni un token invalido: ahi el proceso puede "estar vivo" y seguir fallando.
Activalo:
enable-linger es el detalle que falta en muchas Pis. Sin linger, systemd mata los servicios de usuario cuando no hay sesion SSH. El agente "funciona mientras estoy conectado" y muere al colgar.
Ver logs:
Ruta del binario
Si which hermes muestra otra ruta, cambia ExecStart antes de enable --now. Un unit que apunta a un binario viejo se ve "activo" y no es el gateway que editaste.
Prueba de verdad (no solo status)
systemctl --user is-active ...debe deciractive.- Manda un mensaje desde el telefono.
- Cierra SSH.
- Espera un minuto. Manda otro mensaje.
- Reinicia la Pi con
sudo rebooty, cuando vuelva, manda un tercero.
Si el paso 4 o 5 falla, el problema casi nunca es el modelo. Revisa linger, WantedBy=default.target y que el working directory exista.
Lo que no debes hacer
- Correr el gateway en
screenotmuxy llamarlo 24/7. - Usar
sudo systemctlpara un binario instalado en tu$HOMEsin ajustar usuario y rutas. - Exponer el puerto del gateway a internet para "probarlo desde el celular fuera de casa" sin lista de usuarios.
Por que hace falta loginctl enable-linger en un servicio de usuario?