Il s'agit d'une question générale pour Upstart, mais permettez-moi d'utiliser un cas spécifique :
Centrify est une passerelle NIS vers ActiveDirectory. Il doit être chargé avant tout service qui dépendra du service d'authentification qu'il fournit, par ex. autofs, cron, nis, et al.
Cela s'est avéré assez difficile à réaliser, même en essayant de modifier les dépendances des autres services (ce que je ne pense pas que nous devrions faire de toute façon, je ne veux pas toucher aux autres emplois Upstart si possible) .
Des suggestions ?
Meilleure réponse
La solution est d'aborder le problème dans l'autre sens :pour satisfaire les critères de démarrage de Centrify, il n'est pas nécessaire de faire dépendre les services existants
du nouveau service Centrify, mais plutôt de faire dépendre le nouveau service Centrify
sur les services existants.
Par exemple, un fichier de configuration Upstart /etc/init/centrify.conf
pourrait dire :
démarrer le (démarrage de cron ou démarrage d'autofs ou démarrage de nis)
En convertissant ceci en anglais, cela se traduirait par :
démarrer le service Centrify juste avant soit cron, autofs ou nis
start (celui qui démarre en premier).
L'ordre dans lequel cron, autofs ou nis démarrent n'est pas pertinent :Upstart s'assurera que Centrify démarrera avant le premier service, garantissant ainsi
que Centrify s'exécute avant le démarrage de l'un de ces services.
Notez également qu'Upstart bloquera le démarrage du premier service qui souhaite démarrer jusqu'à ce que Centrify ait commencé à fonctionner.
Très élégant et simple une fois que vous vous êtes habitué à penser de cette manière.