Esta es una pregunta general de Upstart, pero déjame usar un caso específico:
Centrify es una puerta de enlace de NIS a ActiveDirectory. Debe cargarse antes de cualquier servicio que dependerá del servicio de autenticación que proporcione, p. autofs, cron, nis, y otros.
Esto ha demostrado ser bastante difícil de lograr, incluso cuando se trata de cambiar las dependencias de los otros servicios (que no creo que debamos hacer de todos modos, no quiero tocar los otros trabajos de Upstart si es posible) .
¿Sugerencias?
Mejor respuesta
La solución es abordar el problema desde la otra dirección:para satisfacer los criterios de inicio de Centrify, no es necesario hacer que los servicios existentes
dependan del nuevo servicio de Centrify, sino que el nuevo servicio de Centrify
dependa en los servicios existentes.
Por ejemplo, un archivo de configuración Upstart /etc/init/centrify.conf
podría decir:
iniciar en (iniciando cron o iniciando autofs o iniciando nis)
Convirtiendo esto al inglés, esto se traduciría como:
inicie el servicio Centrify justo antes ya sea cron, autofs o nis
start (lo que comience primero).
El orden en que se inician cron, autofs o nis es irrelevante:Upstart se asegurará de que Centrify se inicie antes que el servicio que se inicia primero, lo que garantiza
que Centrify se ejecuta antes de que se inicie cualquiera de esos servicios.
Tenga en cuenta también que Upstart bloqueará el inicio del primer servicio que desee iniciar hasta que Centrify haya comenzado a ejecutarse.
Muy elegante y simple una vez que te acostumbras a pensar de esta manera.