Upstart fue desarrollado por Canonical, por lo que fue la implementación de init en Ubuntu durante un tiempo; sin embargo, en las instalaciones modernas de Ubuntu, ahora se utiliza systemd. Upstart fue creado para mejorar los problemas con SysV, como los procesos de inicio estrictos, el bloqueo de tareas, etc. El modelo impulsado por eventos y trabajos de Upstart le permite responder a los eventos a medida que ocurren.
Para saber si está utilizando Upstart, si tiene un directorio /usr/share/upstart, ese es un buen indicador.
Los trabajos (Jobs) son las acciones que realiza Upstart, y los eventos (Events) son mensajes que se reciben de otros procesos para activar trabajos. Para ver una lista de trabajos y su configuración:
pete@icebox:~$ ls /etc/init
acpid.conf mountnfs.sh.conf
alsa-restore.conf mtab.sh.conf
alsa-state.conf networking.conf
alsa-store.conf network-interface.conf
anacron.conf network-interface-container.conf
Dentro de estas configuraciones de trabajos, encontrará información sobre cómo y cuándo iniciar los trabajos.
Por ejemplo, en el archivo networking.conf, podría decir algo tan simple como:
start on runlevel [235]
stop on runlevel [0]
Esto significa que comenzará a configurar la red en el runlevel 2, 3 o 5 y detendrá la red en el runlevel 0. Hay muchas maneras de escribir el archivo de configuración, y lo descubrirá al observar las diferentes configuraciones de trabajos disponibles.
La forma en que funciona Upstart es la siguiente:
- Primero, carga las configuraciones de trabajos desde
/etc/init. - Una vez que ocurre un evento de inicio (startup event), ejecutará los trabajos activados por ese evento.
- Estos trabajos generarán nuevos eventos, y luego esos eventos activarán más trabajos.
- Upstart continúa haciendo esto hasta que completa todos los trabajos necesarios.