Contenido
Un servicio es un proceso de fondo (daemon) que se ejecuta sin cliente directo: servidor web, base de datos, cupón/leche… cosas que viven en silencio.
systemd organiza los servicios como units (unidades). Una unit puede ser:
service→ serviciostimer→ programadores sustitutos del cronmount→ puntos de montajesocket→ servicios socket-activados- y más fauna, pero hoy nos interesa el zoológico
*.service.
¿Qué hace systemctl?
systemctl permite:
- Iniciar/detener un servicio.
- Habilitarlo o deshabilitarlo en arranque.
- Ver logs y estado.
- Ver dependencias.
Su sintaxis general:
systemctl <acción> <unidad>
Ejemplo:
systemctl start apache2.service
Ver servicios instalados
Esto ayuda a explorar el sistema:
Servicios activos ahora mismo:
systemctl list-units --type=service --state=running

Todos los servicios cargados (activos + inactivos):
systemctl list-units --type=service

Servicios instalados en el sistema (cargados y no cargados):
systemctl list-unit-files --type=service
Estado de un servicio
Es la acción más frecuente.
systemctl status apache2.service

Muestra:
• PID
• Logs recientes
• “Loaded” (si está instalado)
• “Active” (si está corriendo)
La magia aquí es que systemd integra parte del journal, así que ya da contexto.
Iniciar / Detener / Reiniciar
Aquí es donde la clase empieza a levantar humo.
Iniciar servicio:
sudo systemctl start apache2.service
Detener:
sudo systemctl stop apache2.service
Reiniciar de forma limpia:
sudo systemctl restart apache2.service
Recargar configuración sin detener el servicio (si lo soporta, como Nginx):
sudo systemctl reload nginx.service
Para puristas: restart tira y relanza, reload solo recarga configuración.
Habilitar en el arranque
Esto conecta systemd con los “targets” (equivalentes modernos de runlevels).
Habilitar:
sudo systemctl enable apache2.service
Deshabilitar:
sudo systemctl disable apache2.service
Comprobar si está habilitado:
systemctl is-enabled apache2.service
Esto crea o elimina enlaces simbólicos en /etc/systemd/system/.
Ver logs de un servicio
journalctl es el diario íntimo del sistema. Útil para debugging y para descubrir que olvidaste escapar ese símbolo en la config de Postfix.
Logs recientes del servicio:
journalctl -u apache2.service

Logs en tiempo real (“modo Matrix”):
journalctl -u apache2.service -f
Logs de hoy con timestamps:
journalctl -u apache2.service --since today








![[Reto] - Infraestructura virtualizada con Ubuntu Server 9dc81aff-d57d-45b1-83e9-c70955561713](https://laaventuradeaprender.com/wp-content/uploads/2026/03/9dc81aff-d57d-45b1-83e9-c70955561713-150x150.png)