

Upstart es un sistema de arranque para GNU/Linux nacido con el objetivo de reemplazar al veterano init de System V, que ha reinado en todas las distribuciones desde… desde siempre, más o menos. En The H Open Source han dedicado un completo reportaje a explicar en detalle su funcionamiento. Sin profundizar tanto, me gustaría introducir un poco el tema, que saber un mínimo de estas cosas siempre está bien.
¿Conoces el init de System V, verdad? Es el primer programa que se ejecuta en el sistema tras cargar el núcleo en memoria. Lo primero que hace es leer el archivo /etc/inittab, de donde obtiene algunos parámetros básicos, y luego va ejecutando por orden los scripts del directorio /etc/rcS.d de forma secuencial. Dependiendo de un parámetro numérico llamado runlevel, posteriormente seguirá cargando todos los scripts del directorio /etc/rcN.d correspondiente –normalmente el 2 o el 3.
En lugar de seguir una secuencia establecida de antemano, Upstart se basa en eventos. Cada script de Upstart depende de una serie de eventos y a su vez genera más eventos. El primero que se genera es el startup y a partir de ahí van lanzándose scripts, que a su vez generan más eventos que permiten que se lancen más scripts, hasta que el sistema completo se encuentra cargado.
Hasta ahora, tanto Ubuntu como Fedora incluían Upstart aunque solo como un emulador del init tradicional, porque para cambiar el sistema hay que reescribir todos los scripts de arranque, una tarea bastante delicada. En Ubuntu 9.10 se ha dado un paso muy importante incluyendo por vez primera un arranque basado, en su gran mayoría, en verdaderos scripts de Upstart.
Los scripts propios de Upstart se encuentran en el directorio /etc/init y, además del script en sí, incluyen toda la información extra necesaria, como las condiciones de arranque, los eventos que se generan y otras opciones, como si el servicio debe reiniciarse automáticamente en caso de que termine (respawn).
También es posible iniciar y detener scripts de Upstart manualmente mediante los comandos start, stop y restart, aunque en realidad no son más que atajos para el más complejo comando initctl.
Vía: D’Oh! | Foto original: TheBusyBrain

¡Gracias por dejarnos tus comentarios! — por favor intenta mantener tu opinión relacionada con la anotación, no usar insultos, agresiones, o faltas de respeto al autor y otros participantes de la discusión, en caso de no hacerlo tu comentario podría ser borrado.
Existe mucha más información en nuestra política de comentarios.
No hace mucho que instalé el nuevo Ubuntu, me di sorpresa que los scripts del upstart cambiaron de sitio, antes estaba en /etc/event.d/ y ahora en /etc/init/ , que mi script que funcionaba en la anterior versión no funcionaba en esta (tuve que modificarla ligeramente), otro punto porque no funcionaba es porque ahora es necesario que termine con la extensión .conf de lo contrario no inicia el servicio,,, los que hicieron una actualización de Ubuntu y no desde una instalación limpia se encontraron con que no hicieron una migración automática de sus scripts al nuevo lugar y que no funcionaba, en otro lugar se quejaron falta de documentación, pero para mí esos pequeños cambios fueron acertados, mi script pasó de tener a 6 líneas a 2 líneas, incluso deshabilitar un servicio sería menos complicado solo hay que renombrar el archivo xxx.conf a xxx.conf.bk y reiniciar, en mi opinión es más fácil de usar.
Saludos.
un poco de teoría siempre es de ayuda, gracias por la información.