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?
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 ).
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.
Powodem, dla którego zostanie usunięty,
sysvinit
jest to, że te dwa są konfliktami. Zauważ też, żesysvinit
jest to uważane za niezbędne (czytaj: nie do usunięcia, chyba że wiesz, co robisz ).Część wyników „aptitude show upstart”:
Jeśli możesz sobie pozwolić na podłączenie węża do systemu, śmiało go zainstaluj.
źródło
/etc/init.d
i spraw, aby zrozumiał minimumstart|stop|restart
poleceń. Nie musiszupstart
uruchamiać skryptu, tylko zwykły wiersz poleceń.exec
tam - przeczytaj kilka stron podręcznika i / lub książek o skryptach powłoki.