Init vs. Systemd : El Director de la Orquesta



Init:

    • Descripción: Init es un sistema de inicialización tradicional que inicia y gestiona procesos y servicios durante el arranque del sistema en sistemas operativos basados en UNIX.
    • Funciones:
      • Inicia procesos de manera secuencial.
      • Controla el nivel de ejecución del sistema.
      • Gestiona servicios y configuraciones de inicio.

    Systemd:

      • Descripción: Systemd es un sistema de inicialización moderno y más completo que ha reemplazado a Init en muchas distribuciones Linux.
      • Funciones:
        • Permite el arranque concurrente para mejorar el tiempo de inicio.
        • Gestionar servicios y unidades de forma eficiente.
        • Controla el registro del sistema (journal).
        • Ofrece herramientas adicionales para la administración del sistema.

      Diferencias Clave:

      CaracterísticaInitSystemd
      FilosofíaSecuencialConcurrente
      ConfiguraciónScripts en /etc/init.d/Archivos de configuración («units») en /etc/systemd/system/
      Gestión de DependenciasManualAutomática
      Registro y DiagnósticoMenos estructuradoSistema de registro (journalctl)
      Compatibilidad con CGroupsNo nativaUtiliza CGroups
      Herramientas AdicionalesEnfoque limitadoHerramientas integrales para el sistema
      AdopciónEstándar previoPredominante en distribuciones modernas
      Init vs. Systemd

      Configuración:

      1. Configuración de Init:
      • Los scripts de inicio se encuentran en /etc/init.d/.
      • Configuración manual de dependencias y orden de inicio.
      • Edición de scripts para personalizar el inicio.
      1. Configuración de Systemd:
      • Archivos de configuración «units» en /etc/systemd/system/.
      • Uso de comandos como systemctl para gestionar servicios.
      • Modificación de unidades para establecer dependencias, ajustar tiempos de espera, etc.

      Ejemplo de Configuración en Systemd:

      • Crear un archivo mi_servicio.service en /etc/systemd/system/:
      [Unit]
      Description=Mi Servicio
      After=network.target
      
      [Service]
      ExecStart=/ruta/a/mi_programa
      Restart=always
      
      [Install]
      WantedBy=default.target
      • Description: Descripción del servicio.
      • After: Especifica que el servicio debe iniciarse después de network.target.
      • ExecStart: Ruta del programa a ejecutar.
      • Restart: Configuración de reinicio.
      • WantedBy: Establece la relación con el objetivo predeterminado.

      Luego, puedes activar y gestionar el servicio con comandos como systemctl start mi_servicio.service.

      La elección entre Init y Systemd a menudo depende de las preferencias y requisitos del sistema, así como de la distribución específica de Linux que estás utilizando. Ambos sistemas tienen sus ventajas y desventajas, pero Systemd ha ganado popularidad por su enfoque moderno y características adicionales.

      systemd vs init Controversy [A Layman’s Guide] – It’s FOSS. https://itsfoss.com/systemd-init/.
      Init Systems Unveiled — Understanding the Differences between SystemD …. https://akashrajpurohit.com/blog/init-systems-unveiled-understanding-the-differences-between-systemd-and-systemv/.
      The Story Behind ‘init’ and ‘systemd’: Why ‘init’ Needed to … – Tecmint. https://www.tecmint.com/systemd-replaces-init-in-linux/.