¿En qué se diferencia Upstart??
Upstart tiene un modelo para iniciar cualquier trabajo disponible cuando ocurre el evento. Compare esto con systemd, que inicia procesos que tienen todos los demás sistemas en ejecución. La principal diferencia es que Upstart está esperando eventos y systemd está coordinando las dependencias. Ambos sistemas pueden ejecutar scripts regulares y ambos intentan iniciarse en paralelo. Debido a que las diferencias son tan pequeñas, los scripts Upstart generalmente se pueden llamar con un archivo de servicio systemd. También pueden, ambos ejecutar archivos systemV sin cambios. De hecho, ambos buscan una estructura de archivos systemV antigua de forma predeterminada. La gran diferencia es que Upstart busca eventos definidos para iniciar cualquier cosa. Entonces, si desea agregar su propio servicio, debe averiguar en qué contexto necesita su servicio. Por lo general, esto es fácil, ya que querrá algo que se ejecute, por ejemplo, en su escritorio. El escritorio comienza con el nivel de ejecución de eventos 5, por lo que lo configura en su script. Para systemd, por el contrario, este es el objetivo gráfico. En advenedizo, también tiene otros eventos que puede utilizar, como montaje, montaje y solicitud de teclado. Estos se manejan con systemd mediante sockets y dbus.
¿Cómo se migran los scripts??
Tiene todos los scripts Upstart en / etc / init, sus nombres son el nombre del trabajo con una extensión 'conf'. Los scripts no son ejecutables, solo apuntan a uno o más ejecutables que deben ejecutarse. En cualquier script Upstart, ha definido en qué evento debe iniciarse el script y cuándo debe detenerse. También debe tener entradas previas al inicio y posteriores a la parada. Estos prepararán el medio ambiente y limpiarán después de la ejecución. A continuación se muestra un guión de muestra
descripción "Un guión simple"comenzar en el nivel de ejecución [2345]
parar en el nivel de ejecución [06]
reaparecer
env SCRIPT_ENV_VAR = '/ ruta / a / archivo.config '
chdir / ruta / a / script /
script de exec bash.sh
La declaración 'ejecutiva' dice lo que sucederá cuando lo inicie manualmente. Las directivas start y stop definen cuándo se iniciará el script automáticamente. Como puede ver, también puede configurar el directorio en el que se ejecutará. Upstart tiene muchos más aspectos, pero debe aprender a migrar.
Para que este script funcione en systemd, debe crear un archivo de servicio.
Unidad]Descripción = Un guión simple
[Servicio]
Entorno = SCRIPT_ENV_VAR = / ruta / a / archivo.config
WorkingDirectory = / ruta / a / script
ExecStart = / usr / bin / bash script.sh
Reiniciar = siempre
[Instalar en pc]
WantedBy = multiusuario.objetivo
Aquí puedes ver que suceden las mismas cosas pero con otras palabras clave. El formato es simple y al grano. En lugar de tener niveles de ejecución, apuntas a qué destino quiere tu secuencia de comandos. Esto resalta que systemd tiene que ver con la dependencia y comenzar cosas para el entorno específico. Tenga en cuenta también que ExecStart apunta a una ruta global, nunca usa una ruta local.
Donde sobresale?
Upstart fue diseñado para un comportamiento paralelo pero también fue diseñado para ser pequeño. Si encuentra esto en cualquier lugar, será en sistemas integrados y ChromeOS. Sí, ChromeOS lo tenía. La razón es que se construyó sobre si Ubuntu desde el principio, en el momento en que Ubuntu tenía advenedizo como el sistema inicial predeterminado. Desde entonces, ChromeOS ha pasado a usar Gentoo como base.
Conclusión
Upstart es un tema interesante pero principalmente histórico. Es posible que lo necesite solo si se encuentra con sistemas antiguos. La alternativa más común en Linux ahora es systemd. Si tiene reservas con respecto a systemd, debe buscar otros sistemas mínimos. Uno interesante es el sin mamada, sinit. Admite tres señales y debe escribir todos los scripts usted mismo o modificar los scripts de otra persona. Este puede ser un ejercicio interesante, pero solo es útil si está trabajando en un sistema mínimo y especializado.