Loaded: … enabled
Dice si arrancará solo tras un reinicio del servidor.
enabled sí; disabled
no. Es la línea que delata el error de start sin
enable.
Un servicio -o demonio- es un programa que corre de fondo, sin ventana y sin que nadie lo lance a mano: el servidor web, la base de datos, el propio SSH por el que entraste.
Quien los arranca, los vigila y los vuelve a levantar si se caen es systemd, el gestor de servicios de Ubuntu. Administrar un servidor es, en buena medida, hablar con él.
sudo systemctl status nginx # como esta (el que mas se usa)
sudo systemctl restart nginx # pararlo y volverlo a arrancar
sudo systemctl stop nginx # pararlo ahora
sudo systemctl start nginx # arrancarlo ahora
# Y los dos que deciden que pasa tras un reinicio del servidor
sudo systemctl enable nginx # que arranque solo al encender
sudo systemctl disable nginx # que NO arranque solostart no es enable, y confundirlos se
paga de madrugada. start lo arranca ahora;
enable lo apunta para que arranque en cada encendido.
Un servicio arrancado solo con start funciona perfectamente durante
semanas… hasta el primer reinicio, y entonces no vuelve. Es de los fallos que peor
se diagnostican, porque «no se tocó nada».
systemctl status es el comando más útil del curso. En una
pantalla dice si está vivo, si arranca solo, desde cuándo corre y las últimas líneas
de su registro.
sudo systemctl status nginx● nginx.service - A high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-06-15 03:12:04 -05; 2 months 22 days ago
Main PID: 1287 (nginx)
Tasks: 5 (limit: 9448)
Memory: 12.4M
CPU: 4min 51.203sDice si arrancará solo tras un reinicio del servidor.
enabled sí; disabled
no. Es la línea que delata el error de start sin
enable.
Está vivo ahora mismo, y desde cuándo.
Ese «desde cuándo» vale oro: si dice cuatro minutos y nadie lo tocó, se reinició solo, y ahí está el problema real.
Parece un error y no lo es. Hay unidades que hacen una tarea y terminan -montar un disco, aplicar una regla de red-.
Hicieron su trabajo y salieron bien. Lo que sí es un fallo es
failed.
La tentación es reiniciar otra vez, y otra. Reiniciar a ciegas no arregla casi nunca y borra pistas. El orden correcto son cuatro pasos, y funciona con cualquier servicio aunque no sepas nada de él.
sudo systemctl status nginx -l --no-pager
Las últimas líneas del registro salen ahí mismo, y en más de la mitad de los casos el motivo está escrito con todas las letras.
sudo journalctl -u nginx -n 50 --no-pager
-u filtra por unidad y -n 50 trae las últimas
50 líneas. Se busca la primera línea de error, no la
última: las siguientes suelen ser consecuencia.
Muchos servicios saben revisarse solos:
sudo nginx -t valida la configuración del servidor web y dice
el archivo y la línea del error.
Es el paso que más tiempo ahorra y el que más se salta.
sudo systemctl restart nginx y otra vez
status.
Terminar sin verificar es como no haberlo hecho: el comando puede volver sin error y el servicio caerse tres segundos después.
sudo systemctl status nginx● nginx.service - A high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Mon 2026-09-07 09:52:11 -05; 8s ago
Process: 4471 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)
nginx[4471]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)Ahí está todo: «Address already in use». El puerto 80 lo tiene otro programa. No es un problema de nginx, y reiniciarlo cien veces no lo va a arreglar. Se averigua quién ocupa el puerto -eso es la lección 7- y se decide.
journalctl es el registro central de systemd: todo lo que
escriben los servicios pasa por ahí. Con cuatro opciones se filtra lo que haga
falta.
# Seguir en vivo lo que escribe un servicio (Ctrl+C para salir)
sudo journalctl -u nginx -f
# Solo errores, de todo el sistema, desde hoy
sudo journalctl -p err --since today
# Un rango de tiempo concreto
sudo journalctl --since "2026-09-07 09:00" --until "2026-09-07 10:00"
# Lo ocurrido en el arranque anterior (util si se reinicio solo)
sudo journalctl -b -1 -p errComprueba que el registro sobrevive a los reinicios. Según cómo esté configurada la máquina, el diario puede guardarse solo en memoria: al reiniciar, desaparece. Y lo que uno necesita leer casi siempre es por qué se reinició.
journalctl --list-boots lo revela en un segundo: si solo aparece el
arranque actual, no hay histórico. Se arregla poniendo
Storage=persistent en /etc/systemd/journald.conf y
reiniciando systemd-journald.
Casi ningún servicio relee su configuración solo. Hay dos formas:
restart lo para y lo arranca -corta las conexiones en curso-.
reload le pide releer sin cortar el servicio, y
es lo que se usa en producción cuando el servicio lo admite.
Falta sudo systemctl daemon-reload. systemd tiene sus
unidades en memoria y no relee los archivos hasta que se lo pides.
El propio status avisa con un «changed on disk» que
es fácil pasar por alto.
Muchas unidades traen Restart=always: si el programa
muere, systemd lo levanta. Si el fallo es de configuración, entra en
bucle.
El registro se llena de arranques y el Active siempre dice pocos segundos. Ahí hay que leer el primer error del ciclo, no el último.
systemctl list-units --type=service --state=running
lista lo que está corriendo.
Y systemctl --failed muestra solo lo que falló: es una buena
primera comprobación al llegar a un servidor ajeno.
Pasa, y contribuye a los discos llenos de la lección 6.
journalctl --disk-usage dice cuánto ocupa.
sudo journalctl --vacuum-time=30d deja solo los últimos 30
días.
Arrastra cada comando a lo que hace, o toca uno y luego su espacio.
Arrancaste un servicio con start y funciona. El servidor se reinicia de madrugada y el servicio no vuelve. ¿Por qué?
Un servicio dice active (exited). ¿Qué pasa?
failed.Un servicio no arranca. ¿Cuál es el primer paso?
Ya sabes manejar y diagnosticar servicios. La siguiente lección va a los recursos: encontrar qué llenó el disco -la causa número uno de fallos raros-, entender de una vez por qué la memoria siempre parece llena, y qué hacer con un proceso que se comió el servidor.
Siguiente: Disco, memoria y procesos
Continuar ← Paquetes y actualizaciones