systemd
El servicio se queda en «activating» hasta que systemd lo mata. El proceso arranca pero nunca dice que está listo, o tarda más de lo permitido. En el journal la línea correspondiente es «X.service: start operation timed out. Terminating.».
En el orden en que lo miramos nosotros. No es un ranking de frecuencia: no publicamos estadísticas que no hemos medido.
El Type no corresponde. Con Type=notify systemd espera una señal por sd_notify que el programa nunca envía.
Comprobar
systemctl cat mi-servicio | grep -E 'Type|TimeoutStartSec'Corregir
# Si el programa no implementa sd_notify, Type=simple o Type=exec.El arranque es legítimamente largo: migraciones de base de datos, índices, precarga.
Comprobar
sudo journalctl -u mi-servicio -fCorregir
# En la unidad:
# TimeoutStartSec=300
sudo systemctl daemon-reloadEl proceso está esperando algo que no llega: una base de datos, un montaje de red, DNS.
Comprobar
sudo journalctl -u mi-servicio -n 30 --no-pagerCorregir
# Declarar la dependencia real en la unidad:
# After=postgresql.service
# Requires=postgresql.serviceEl proceso pide una contraseña o una frase de paso por la entrada estándar, que en systemd no existe.
Comprobar
sudo journalctl -u mi-servicio | grep -i 'passphrase\|password\|enter'Corregir
# Quitar la frase de paso de la clave o suministrarla con un fichero de
# credenciales; un servicio no puede depender de que alguien escriba.Los comandos de esta página se ejecutan en tu servidor y algunos modifican la configuración: léelos antes de pegarlos. Las rutas y los nombres de servicio varían entre distribuciones. Así se elabora este catálogo.
Soporte Linux y DevOps en español