1. Resumen de System V

El papel principal de un sistema init es iniciar y detener procesos esenciales. Linux ha visto tres implementaciones principales de init: System V, Upstart y systemd. Esta lección se centra en la versión más tradicional, System V init, a menudo denominada SysV o simplemente systemv (pronunciado 'System Five').

Para determinar si su sistema utiliza la implementación systemv, busque un archivo /etc/inittab. Si este archivo existe, lo más probable es que esté ejecutando una distribución basada en SysV.

Cómo System V Gestiona los Procesos

El proceso systemv init inicia y detiene los servicios secuencialmente. Por ejemplo, si un servicio llamado foo-b depende de foo-a, foo-b no puede iniciarse hasta que foo-a se esté ejecutando completamente. El sistema initv logra esto utilizando scripts de shell. Estos scripts, ubicados en directorios específicos, se encargan de iniciar y detener los servicios. Si bien puede escribir scripts personalizados, la mayoría de los sistemas dependen de los preinstalados que gestionan los servicios esenciales del sistema operativo.

Ventajas y Desventajas

La principal ventaja de este enfoque secuencial es su simplicidad y previsibilidad. Solucionar problemas de dependencias es sencillo porque sabe que foo-a siempre comienza antes que foo-b. Sin embargo, el principal inconveniente del modelo init v es el rendimiento, ya que los servicios generalmente se inician uno a la vez, lo que resulta en tiempos de arranque más lentos en comparación con los sistemas paralelos modernos.

Comprensión de los Niveles de Ejecución en System V

En un entorno systemv, el estado de la máquina se define mediante niveles de ejecución (runlevels), numerados del 0 al 6. Estos modos pueden variar ligeramente entre las distribuciones de Linux, pero generalmente siguen esta convención estándar:

  • 0: Apagado (Shutdown)
  • 1: Modo de usuario único (Single User Mode)
  • 2: Modo multiusuario sin red
  • 3: Modo multiusuario con red
  • 4: No utilizado
  • 5: Modo multiusuario con red e interfaz gráfica (GUI)
  • 6: Reinicio (Reboot)

Scripts de Init y Directorios

Cuando su sistema arranca, comprueba su nivel de ejecución configurado y ejecuta los scripts correspondientes. Estos scripts se encuentran típicamente en directorios como /etc/rc.d/rc[runlevel].d/ o dentro de un directorio central /etc/init.d. Los scripts que comienzan con S (Start/Inicio) se ejecutan durante el arranque, mientras que los que comienzan con K (Kill/Matar) se ejecutan durante el apagado. Los números que siguen a S o K dictan el orden de ejecución.

Por ejemplo:

pete@icebox:/etc/rc.d/rc0.d$ ls
K10updates  K80openvpn

En este ejemplo, al cambiar al nivel de ejecución 0 (apagado), primero se ejecutará el script para detener el servicio de actualizaciones, seguido del script para OpenVPN. Puede encontrar el nivel de ejecución predeterminado de su máquina en el archivo /etc/inittab, donde también puede cambiarlo.

Es importante señalar que System V ha sido ampliamente reemplazado por systemd en la mayoría de las distribuciones modernas de Linux. Sin embargo, es posible que todavía encuentre el concepto de niveles de ejecución en los sistemas init más nuevos, ya que a menudo proporcionan una capa de compatibilidad para admitir servicios heredados que dependen de los scripts de systemv init.

Inicia sesión para guardar tu progreso de aprendizaje

Iniciar sesión

Ejercicios

¡La práctica hace al maestro! Aquí hay algunos laboratorios prácticos para reforzar su comprensión de la gestión de procesos de Linux y la configuración del sistema, que son fundamentales para el funcionamiento de los sistemas init:

  1. Gestionar y Supervisar Procesos de Linux - Practique la interacción con procesos en primer plano y en segundo plano, inspeccionándolos con ps, supervisando recursos con top y terminándolos con kill. Esto se relaciona directamente con el aspecto de 'iniciar y detener procesos esenciales' del init.
  2. Programar Tareas con at y cron en Linux - Aprenda a programar tareas únicas y recurrentes, lo que se basa en el concepto de ejecución automatizada, similar a cómo los scripts init gestionan los servicios.
  3. Gestionar Permisos de Archivos y Directorios en Linux - Comprenda cómo gestionar los permisos de archivos y directorios, una habilidad crítica para trabajar con archivos de configuración del sistema y scripts como los que se encuentran en /etc/init.d.

Estos laboratorios le ayudarán a aplicar los conceptos en escenarios reales y a ganar confianza con las tareas fundamentales de administración de sistemas Linux.

Cuestionario

¿Qué nivel de ejecución se utiliza habitualmente para el apagado?