Cuando el sistema arranca, luego de que el núcleo configuró todo y montó la raíz del sistema de archivos, inicia el programa /sbin/init[28]. init es el padre de todos los procesos del sistema, y es el responsable de llevar al sistema al nivel de ejecución (runlevel) deseado. En la próxima sección estudiaremos los distintos niveles de ejecución.
El archivo de configuración de init es /etc/inittab. Este archivo tiene su propia página Man (inittab(5)), pero aquí describiremos sólo algunos de los elementos de configuración.
La primer línea que debería ser el foco de su atención es esta:
si::sysinit:/etc/rc.d/rc.sysinit |
Esta instrucción le dice a init que /etc/rc.d/rc.sysinit debe ejecutarse en la inicialización del sistema (si significa System Init, Inicialización del sistema) antes que cualquier otra cosa. Para determinar el nivel de ejecución predeterminado, init busca entonces la línea que contiene la palabra clave initdefault:
id:5:initdefault: |
En este caso, init sabe que el nivel de ejecución predeterminado es 5. También sabe que para entrar en el nivel 5, debe ejecutar el comando siguiente:
l5:5:wait:/etc/rc.d/rc 5 |
Como puede ver, la sintaxis para cada uno de los niveles de ejecución es similar.
init también es responsable de reiniciar (respawn) ciertos programas que sólo él es capaz de reiniciar. Este es el caso, por ejemplo, de todos los programas de conexión que corren en cada una de las 6 terminales virtuales[29]. Para la segunda consola virtual, esto da:
2:2345:respawn:/sbin/mingetty tty2 |
[28] Ahora Usted puede ver por qué poner /sbin en un sistema de archivos que no sea la raíz es un muy mala idea :-)
[29] Por lo que Usted puede, si quiere, agregar o quitar consolas virtuales modificando este archivo, hasta un máximo de 64, siguiendo la sintaxis. Pero no se olvide que X ¡también corre en una consola virtual! Entonces, por lo menos deje una libre para X.