miércoles, 15 de enero de 2014

Diferencias entre Inittab y Upstart



¿Qué es inittab?

Distribuciones de GNU/Linux donde se usa.


Inittab es el archivo de configuración inicial que encuentra init en /etc después de la carga del kernel. Contiene las instrucciones de inicio de los programas y scripts que van a funcionar al iniciar el nivel de ejecución especificado.
El fichero inittab nos muestra los diferentes niveles de ejecución disponibles en un sistema Debian 6, por ejemplo:

El nivel de ejecución 0 es apagar el sistema.
El nivel de ejecución 1 es iniciar el sistema como monousuario.
Los niveles de ejecución del 2 al 5 es iniciar el sistema como multiusuario.
El nivel de ejecución 6 es reiniciar el sistema.


El fichero inittab se usa en las distribuciones Linux como Debian 6 y en sistemas Solaris


Pequeño tutorial de inittab 
 
Las entradas del fichero /etc/inittab tienen el siguiente formato:

id:niveles_ejecución:acción:proceso

id: Es la secuencia única de 1 a 4 caracteres que identifican la entrada de inittab.
niveles_ejecución: Lista de niveles de ejecución para los que se llevarán a cabo las acciones definidas a continuación en la misma línea.
acción: La acción que será llevada a cabo.
proceso: El proceso a ejecutar.

Para que una línea sirva para varios niveles de ejecución, el campo niveles_ejecución tiene que incluirlos. 
Por ejemplo, 135 indica que el proceso se iniciará
en los niveles 1, 3 y 5.

 
Las acciones que podemos definir, más habitualmente, en el campo acción son: 

initdefault: especifica el nivel de ejecución por defecto al arrancar el sistema. El campo proceso se ignora.
respawn: el proceso se reiniciará cuando termine.
once: el proceso se ejecutará una sola vez cuando se entre en el nivel de ejecución especificado.
wait: el proceso se iniciará una vez cuando se entre en el nivel de ejecución e init esperará a su terminación.
boot: el proceso se ejecutará durante el arranque del sistema. El campo niveles_ejecución se ignora.
bootwait: el proceso se ejecutará durante el arranque del sistema, mientras init espera su terminación. El campo niveles_ejecución se ignora.
sysinit: el proceso se ejecutará durante el arranque del sistema, antes que cualquier entrada boot o bootwait. El campo niveles_ejecución se ignora. 

Un ejemplo de entradas en inittab:


¿Qué es upstart

Distribuciones de GNU/Linux donde se usa.

Upstart es el sustituto del demonio /sbin/init el cuál se encarga de manejar el arranque de las tareas y servicios durante el inicio del pc, de detenerlas durante su apagado y de supervisarlas mientras el sistema está funcionando.

Fue desarrollado originalmente para la distribución Ubuntu, pero tiene como propósito implantarse en todas las distribuciones de Linux. 

Actualmente upstart se puede encontrar en Fedora 9, en Debian en su versión Squeeze y en otros sistemas operativos como Google Chrome OS.
 
Con upstart podremos manejar y gestionar eventos de una forma similar a cómo se hacía con el /etc/inittab.

Ejemplo de servicios que usa Upstart:



Diferencias con inittab. Ventajas e inconvenientes.

- Upstart permite el reinicio de los servicios que mueren de forma inesperada.
- En upstart el arranque de los servicios es en paralelo. 
 Si un servicio se retrasa por algún motivo no afecta a los demás servicios siempre que no dependan de él. De esta forma se reducen los tiempos de inicio de los servicios.

Fuentes de información:

No hay comentarios:

Publicar un comentario