Ich habe ein Startskript, um eine benutzerdefinierte NodeJS-App zu starten. Die App hängt von Couchdb und Elasticsearch ab. couchdb und elasticsearch bieten init.d-Skripte zum Starten / Stoppen. Kann ich meinem Upstart-Skript mitteilen, dass Couchdb und Elasticsearch Abhängigkeiten sind? Ich habe dies in meinem Upstart-Skript versucht, aber es scheint nicht zu funktionieren:
start on (hat couchdb gestartet und elasticsearch gestartet)
Vielen Dank!
Antworten:
Ich weiß nur, dass dies funktionieren würde, wenn Sie Upstart-Skripte für elasticsearch und couchdb erstellen (oder suchen und installieren), damit Sie die Option "Start on" verwenden können.
quelle
Ich hatte die gleiche Frage und fand auch eine andere Antwort . Der Autor listet 4 Optionen auf, um dies zu erreichen, von denen mir die erste am besten gefällt:
Verwenden Sie
initclt emit myservice-started
diese Option , um den Abschluss des Startvorgangs Ihres abhängigen Dienstes zu signalisieren. In der verknüpften Antwort wird empfohlen, diese Zeile am Ende desinit.d
Skripts des Abhängigkeitsdienstes hinzuzufügen , aber ich bevorzuge eine andere Methode. Ich möchte ein neuesinid.d
Skript mit dem Namen erstellenmyservice-started
, das nur einenstart
Abschnitt enthält . Unter Verwendung des entsprechenden Kommentarstils im Header der Datei erkläre ich, dass es davon abhängt$myservice
, gestartet zu werden. In diesemstart
Abschnitt erzähle ich Emporkömmling übermyservice
den Start. Sie können es mit installierenupdate-rc.d
.Ich mag diese Lösung, weil sie nicht aufdringlich ist. Wenn ein Update eines der vorhandenen
init.d
Skripte ändert , hat dies keine Auswirkungen auf diese zusätzlichen Skripte. Aber denken Sie daran , dass Änderungen an dem Emporkömmling Skripte sind erforderlich.Es könnte so aussehen:
Ihr Startskript, das auf myservice wartet, kann auf das
myservice-started
Ereignis warten :quelle