Upstart na Debianie?

20

W Ubuntu stworzyłem skrypt upstart, sądząc, że będzie taki sam dla Debiana. Ale Debian nie ma /etc/initfolderu, który ma Ubuntu. Poszedłem na stronę pobierania z początku i zobaczyłem, że mają pakiety, zrobiłem apt-get install upstart, ale prosi o usunięcie sysvinit, który, jak wiem, zepsuje mój system. Jak więc sprawić, by mój skrypt Ubuntu działał na Debianie?

theTuxRacer
źródło

Odpowiedzi:

12

Nie chodzi bezpośrednio o Debian vs Ubuntu, chodzi o SysVinit vs Upstart . Domyślnie Debian to SysVinit; możesz zainstalować Upstart, ale musisz wiedzieć, co robisz i powinieneś się z nim zapoznać, zanim nawet pomyślisz o zainstalowaniu go na serwerze produkcyjnym. Chociaż teoretycznie możliwe jest zainstalowanie obu, a tylko jeden z nich działa jako proces nr 1, Debian nie obsługuje tego po wyjęciu z pudełka.

Upstart jest młodszy od SysVinit i ma więcej możliwości, co wyjaśnia, dlaczego nie można po prostu wziąć opisu usługi Upstart i przekazać go do SysVinit. Musisz napisać skrypt dla/etc/init.d . Zasadniczo ten skrypt musi sprawdzić swój pierwszy argument ( $1) i start/ stoplub restartusługę zgodnie z zaleceniami.

Jeśli używasz zdarzeń Upstart, aby określić, kiedy uruchomić skrypt, będziesz musiał użyć innych metod. Upstart gromadzi wydarzenia z wielu różnych źródeł; można uzyskać wyzwalacz z dowolnego miejsca, w którym dostaje go Upstart, Upstart pod tym względem jest po prostu wygodnym sposobem, aby nie musieć szukać wyzwalaczy w wielu różnych miejscach i protokołach.

Gilles „SO- przestań być zły”
źródło
Więc dlaczego Ubuntu używa zarówno upstart, jak i SysVinit (lub wydaje się, że tak)?
ColinM,
@ColinM Ubuntu nie używa SysVinit.
Gilles 'SO - przestań być zły'
5

Powodem, dla którego zostanie usunięty, sysvinitjest to, że te dwa są konfliktami. Zauważ też, że sysvinitjest to uważane za niezbędne (czytaj: nie do usunięcia, chyba że wiesz, co robisz ).

Część wyników „aptitude show upstart”:

Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job

Jeśli możesz sobie pozwolić na podłączenie węża do systemu, śmiało go zainstaluj.

tshepang
źródło
Nie, to serwer produkcyjny. Czy nie ma możliwości stworzenia usługi, którą mogę uruchomić i zatrzymać z terminala?
theTuxRacer
Następnie włóż skrypt /etc/init.di spraw, aby zrozumiał minimum start|stop|restartpoleceń. Nie musisz upstarturuchamiać skryptu, tylko zwykły wiersz poleceń.
alex
@kau A może sklonujesz serwer produkcyjny na jakiejś maszynie testującej i zainstalujesz wersję próbną?
tshepang
@alex @Tshepang Czy możesz spojrzeć i doradzić? paste.ubuntu.com/555683 Słoik nie jest wykonywany.
theTuxRacer 19.01.11
Nie potrzebujesz exectam - przeczytaj kilka stron podręcznika i / lub książek o skryptach powłoki.
alex