systemd dice «active» y el contenedor lleva minutos muerto
Qué pasa
Muchos servicios de modelos son un script que hace docker run -d y termina. Para que systemd no los dé por acabados se usa Type=oneshot con RemainAfterExit=yes. El efecto secundario: systemd no vigila el contenedor, solo que el script salió bien.
systemctl --user is-active mi-modelo.service -> active
docker ps -a | grep mi-modelo -> Exited (1)
Y lo peor: al volver a arrancar el servicio, systemd cree que ya está en marcha y no hace nada.
Cómo evitarlo
- Para relanzar:
systemctl stop, borra el contenedor (docker rm -f) ysystemctl start. - Mejor aún: que el script espere en primer plano al contenedor (
docker runsin-d, odocker wait) y usaRestart=on-failure. Así systemd sí se entera.