Capítulo 2.6 - Proceso Init y systemd
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Comprender el rol del proceso init (PID 1)
- Explicar cómo systemd gestiona los servicios
- Comprender los unit files de systemd
- Gestionar servicios con systemctl
¿Qué es systemd?
systemd es el sistema de inicialización y gestión de servicios en la mayoría de las distribuciones Linux modernas. Reemplaza los antiguos sistemas init (SysV init).
Roles de systemd
1. Primer Proceso (PID 1)
systemd es siempre el proceso con PID 1:
- Padre de todos los procesos
- Gestiona los procesos huérfanos
- No puede ser terminado normalmente
2. Gestión de Servicios
systemd inicia, detiene y supervisa los servicios:
- Inicio automático al arrancar
- Reinicio en caso de fallo
- Dependencias entre servicios
- Monitoreo del estado
3. Gestión de Niveles de Ejecución
systemd utiliza targets (equivalentes a los runlevels):
multi-user.target: Modo consolagraphical.target: Modo gráficorescue.target: Modo de rescatepoweroff.target: Apagado
Unit Files
Los servicios de systemd se definen mediante unit files:
[Unit]
Description=Servicio Web Apache
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/apache2 -D FOREGROUND
Restart=always
[Install]
WantedBy=multi-user.target
Tipos de unit files:
.service: Servicios.target: Niveles de ejecución.timer: Tareas programadas (alternativa a cron).mount: Puntos de montaje.socket: Sockets de red
Comandos systemctl
Gestión de servicios con systemctl:
# Ver el estado de un servicio
systemctl status apache2
# Iniciar un servicio
systemctl start apache2
# Detener un servicio
systemctl stop apache2
# Reiniciar un servicio
systemctl restart apache2
# Habilitar al inicio
systemctl enable apache2
# Deshabilitar al inicio
systemctl disable apache2
# Ver todos los servicios
systemctl list-units --type=service
Journal systemd
systemd gestiona los logs con journalctl:
# Ver los logs de un servicio
journalctl -u apache2
# Logs en tiempo real
journalctl -f
# Logs desde hoy
journalctl --since today
# Logs con prioridad
journalctl -p err
Resumen
En este capítulo, usted ha aprendido:
systemd: Sistema de inicialización moderno, PID 1
Roles: Gestión de servicios, procesos, niveles de ejecución
Unit files: Configuración de servicios
systemctl: Comandos de gestión
journalctl: Visualización de logs
Próximos Pasos
Capítulo 2.7: Servicios y Demonio
Capítulo 2.8: Niveles de Ejecución (Runlevels)
Capítulo creado el: Diciembre 2024