Diferencias entre inittab y upstart



¿Qué es Inittab?


Inittab es un archivo que indica los procesos se inician cuándo arrancamos el sistema. Init (abreviatura de initialization) es el primer proceso en ejecución tras la carga del Kernel y el que a su vez genera todos los demás procesos. Se ejecuta como demonio y por lo general tiene PID 1. Init distingue múltiples niveles de ejecución, cada nivel tiene su propio conjunto de procesos que se inician. Los niveles válidos de ejecución van desde el nivel 0 al nivel 6 más A,B y C para entradas bajo demanda.

Hay que ser cuidadoso a la hora de modificar el archivo /etc/inittab ya que si nos equivocamos podemos tener problemas con el arranque del sistema por eso antes de modificar el archivo debemos tener una copia del original.


Una entrada del fichero inittab tiene el siguiente formato:








pid : rstate : action : process


Dónde:


Id: es una secuencia única de 1 a 4 caracteres que identifica una entrada de inittab.


rstate: es la lista de niveles de ejecución para los cuáles se llevarán a cabo las acciones.

Action: Indica que acción se llevará a cabo. Puede tener los siguientes valores: sysinit, boot, bootwait y respawn.

Process: Indica el proceso a ejecutar .




Runlevels:


Al nivel de ejecución 1 se entra inmediatamente después de iniciar el
sistema.
Los niveles de ejecución 2 y 3 son los modos de operación del sistema
normal y multiusuario respectivamente.
El nivel de ejecución 4 lanza el sistema X Window(protocolo que nos permite usar interfaz gráfica) a través del X display
manager - xdm(permite iniciar sesión en un servidor desde el mismo u otro equipo).
El nivel de ejecución 5 es el multiusuario con interfaz gráfica.
El nivel de ejecución 6 reinicia el sistema.



Acción: Es la acción que se debe tomar para ese proceso. Tenemos muchos tipos, como por ejemplo “once”(solo una ejecución), “respawn”(si se muere, lo vuelve a arrancar), “wait” (ejecutar proceso y esperar a completarlo para seguir con otros), etc…





Pequeño tutorial:



Para saber el runlevel se usa el comando who -r o el comando runlevel:









Para cambiar el runlevel manualmente se utiliza el comando init <runlevel que queramos usar>





Para cambiar el el runlevel por defecto editamos el archivo /etc/inittab de la siguiente forma













Reiniciamos y comprobamos que cambia el runlevel por defecto.










¿Qué distribuciones Linux la usan?

Todos esos sistemas son descendientes de BSD (Sistema Operativo basado en Unix).
Lo usan distribuciones Linux como Arch Linux, Debian, Solaris…




¿Qué es Upstart?



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 como sustitución del sistema de inicio System-V.


Con upstart podremos manejar y gestionar eventos de una forma similar a como se hacía con el /etc/inittab.

Upstart utiliza inotify (monitoriza los eventos en el sistema de ficheros) para ver los cambios en la configuracion de directorios, y funciona de forma asimétrica.


Ejemplo de upstart


Si entramos al directorio /etc/rcN.d podemos ver que hay archivos comenzados en “s”, esos son los pertenecientes al startup.







Esto no son más que enlaces simbólicos a los scripts que se encuentran en /etc/init.d. La estructura del nombre de los enlaces simbólicos es el siguiente:

S/K (start/kill) xx (Número para establecer orden de arranque) Servicio.



El número que tiene cada directorio rcN.d es el runlevel que se ejecuta, es decir, rc1.d contiene enlaces simbólicos de los servicios que inicia o mata en el nivel 1.




Distribuciones que lo usan.


Estas son las distribuciones que lo usan:

Se comenzó a usar en Fedora 9, aunque en Fedora 15 ha sido reemplazado por systemd.

· Red Hat
incluye Upstart en Red Hat Enterprise Linux 6. Como resultado,
también es usado por sus variantes: Centos, Scientific
Linux y Oracle Linux.

· NixOS usó Upstart por defecto en sus comienzos.


· Debian consideró realizar el cambio en la
versión Squeeze.


· openSUSE 11.3
Milestone 4 usó también Upstart pero no por defecto.





Diferencias entre Inittab y Upstart. Ventajas e incovenientes



Se pasa de un aspecto más estático y fijo (Inittab) a un método más dinámico, basado en la noción de tareas y de entor­nos (Upstart).

Las tareas están en el repertorio /etc/init en forma de scripts de configuración.

El comando initctl controla y se comunica con el proceso init. Con la opción list se ve la lista de tareas en funcionamiento o en espera.

Upstart, a diferencia de inittab, inicia o detiene una tarea en un nivel de eje­cución en lugar de cambiar globalmente todo el nivel. En el directorio de eventos se puede añadir o modificar fácilmente un script.


¿Que hacen las siguientes órdenes y en qué sistema de arranque se utilizan?


Con esta orden lo que se está haciendo es actualizar el arranque y la parada del servicio samba dónde le indicamos que arranque en los niveles 3 4 y 5  y  quede parado en los niveles 1 2 6.



Con esta orden lo que se está haciendo es borrar los enlaces creados anteriormente para actualizar el arranque y la parada del servicio samba.



Fuentes:


www.recipesforlinux.com/.../upstart-el-sustituto-de-sbininit-en-ubuntu/‎

http://upstart.ubuntu.com/

http://aprendiendoausarlinux.wordpress.com/category/etc/inittab/

http://www.pathbreak.com/blog/ubuntu-startup-init-scripts-runlevels-upstart-jobs-explained

Comentarios