Dies ist eine allgemeine Upstart-Frage, aber lassen Sie mich einen speziellen Fall verwenden:
Centrify ist ein Gateway von NIS zu ActiveDirectory. Es muss vor jedem Dienst geladen werden, der von dem bereitgestellten Authentifizierungsdienst abhängt, z. autofs, cron, nis, et al.
Dies hat sich als ziemlich schwierig erwiesen, selbst wenn versucht wird, die Abhängigkeiten der anderen Dienste zu ändern (was wir meiner Meinung nach sowieso nicht tun sollten, ich möchte die anderen Upstart-Jobs nach Möglichkeit nicht berühren). .
Vorschläge?
Beste Antwort
Die Lösung besteht darin, das Problem aus der anderen Richtung anzugehen:Um die Startkriterien für Centrify zu erfüllen, ist es nicht erforderlich, bestehende Dienste
vom neuen Centrify-Dienst abhängig zu machen, sondern den neuen Centrify-Dienst
abhängig zu machen auf bestehenden Diensten.
Beispielsweise eine Upstart-Konfigurationsdatei /etc/init/centrify.conf
könnte sagen:
start on (cron starten oder autofs starten oder nis starten)
Ins Englische umgewandelt würde dies folgendermaßen übersetzt werden:
Starten Sie den Centrify-Dienst kurz davor entweder cron, autofs oder nis
start (je nachdem, was zuerst beginnt).
Die Reihenfolge, in der cron, autofs oder nis starten, ist irrelevant:Upstart stellt sicher, dass Centrify startet, bevor der Dienst zuerst startet, und stellt so sicher, dass
Centrify ausgeführt wird, bevor einer dieser Dienste gestartet wird.
Beachten Sie auch, dass Upstart den Start des ersten Dienstes, der starten möchte, blockiert, bis Centrify gestartet wurde.
Sehr elegant und einfach, wenn man sich daran gewöhnt hat, auf diese Weise zu denken.