Mam skrypt umożliwiający uruchomienie niestandardowej aplikacji nodejs. Aplikacja zależy od couchdb i elasticsearch. couchdb i elasticsearch zapewniają skrypty init.d do ich uruchamiania / zatrzymywania. Czy można powiedzieć mojemu skryptowi, że couchdb i elasticsearch są zależnościami? Próbowałem tego w moim skrypcie upstart, ale wydaje się, że to nie działa:
start on (rozpoczął couchdb i rozpoczął elasticsearch)
Dzięki!
Odpowiedzi:
Jedyne, co wiem, co by działało, to tworzenie (lub wyszukiwanie i instalowanie) skryptów wstępnych dla zarówno elasticsearch, jak i couchdb, aby można było użyć opcji „start on”.
źródło
Miałem to samo pytanie i znalazłem inną odpowiedź . Autor wymienia 4 opcje, aby to osiągnąć, z których najbardziej podoba mi się ta pierwsza:
Służy
initclt emit myservice-started
do sygnalizowania zakończenia uruchamiania usługi zależnej. W połączonej odpowiedzi sugeruje się dodanie tego wiersza na końcuinit.d
skryptu usługi zależności , ale wolę inną metodę. Lubię tworzyć nowyinid.d
skrypt o nazwie,myservice-started
który zawiera tylkostart
sekcję. Używając odpowiedniego stylu komentowania w nagłówku pliku, deklaruję, że zależy to od$myservice
uruchomienia. W tejstart
sekcji mówię na początku omyservice
rozpoczęciu. Możesz go zainstalować za pomocąupdate-rc.d
.Podoba mi się to rozwiązanie, ponieważ nie jest nachalne; jeśli aktualizacja zmieni którykolwiek z istniejących
init.d
skryptów, nie wpłynie to na te dodatkowe skrypty. Pamiętaj jednak, że wymagane są zmiany w skryptach upstart .Może to wyglądać tak:
Twój skrypt startowy czekający na myservice może nasłuchiwać
myservice-started
zdarzenia:źródło