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?

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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.