Upstart ma model uruchamiania dowolnego dostępnego zadania, gdy wydarzenie się wydarzy. Porównaj to z SystemD, który rozpoczyna procesy, w których działają wszystkie inne systemy. Główną różnicą jest to, że Upstart czeka na zdarzenia, a SystemD koordynuje zależności. Oba systemy mogą uruchamiać regularne skrypty i oba starają się zacząć równolegle. Ponieważ różnice są tak małe, scenariusze upstart mogą być zwykle wywoływane z plikiem serwisowym SystemD. Mogą także, oba uruchamiają niezmienione pliki systemv. W rzeczywistości oboje domyślnie szukają starej struktury plików systemu. Duża różnica polega na tym, że Upstart szuka zdefiniowanych wydarzeń, aby wszystko zacząć. Więc jeśli chcesz dodać własną usługę, musisz dowiedzieć się, w którym kontekście potrzebujesz usługi. Zwykle jest to łatwe, ponieważ będziesz chciał czegoś, na przykład na pulpicie. Pulpior zaczyna się od Event RunLevel 5, więc ustawiasz to w swoim skrypcie. W przeciwieństwie do systemu jest to cel graficzny. W górę masz również inne zdarzenia, z których można użyć, takie jak zamontowanie, zamontowane i klawiatury. Są one obsługiwane z systemem przez gniazda i dbus.
Jak migrujesz skrypty?
Masz wszystkie skrypty w /etc /init, ich nazwy są nazwą zadania z rozszerzeniem „conf”. Skrypty nie są wykonywalne, po prostu wskazują na jeden wykonywalny lub więcej, który należy uruchomić. W dowolnych skryptach upstart zdefiniowałeś, w którym zdarze. Powinieneś także mieć wpisy przed startem i po stupie. Przygotują one środowisko i posprzątają po wykonaniu. Przykładowy skrypt jest poniżej
Opis „Prosty skrypt”
Zacznij od RunLevel [2345]
Zatrzymaj się na RunLevel [06]
odradzać
env script_env_var = '/ścieżka/do/plik.konfigurator '
chdir/ścieżka/do/skrypt/
Exec Bash Script.cii
Oświadczenie „Exec” mówi, co się stanie, gdy zaczniesz go ręcznie. Dyrektywy Start i Stop określają, kiedy skrypt rozpocznie się automatycznie. Jak widać, możesz również ustawić katalog, w którym będzie działał. Istnieje wiele innych aspektów, ale powinieneś nauczyć się migrować.
Aby ten skrypt działał w SystemD, musisz utworzyć plik serwisowy.
Jednostka]
Opis = prosty skrypt
[Praca]
Środowisko = script_env_var =/ścieżka/do/plik.konfigurator
WorkingDirectory =/ścieżka/do/skrypt
ExecStart =/usr/bin/bash skrypt.cii
Restart = zawsze
[Zainstalować]
Wantby = Multi-User.cel
Tutaj możesz zobaczyć, że to samo dzieje się, ale z innymi słowami kluczowymi. Format jest prosty i do rzeczy. Zamiast mieć leki, wskazujesz, na którym cel chce twojego skryptu. To podkreśla, że SystemD polega na zależności i rozpoczynaniu rzeczy dla określonego środowiska. Zwróć również uwagę, że ExecStart wskazuje na globalną ścieżkę, nigdy nie używa lokalnej ścieżki.
Gdzie to się wyróżnia?
Upstart został zaprojektowany dla równoległego zachowania, ale został również zaprojektowany tak, aby był mały. Jeśli znajdziesz to gdziekolwiek w miejscu, będzie to w systemach wbudowanych i chromie. Tak, Chromeos to miał. Powodem jest to, że został zbudowany na górze, jeśli Ubuntu od samego początku, w czasie, gdy Ubuntu miał na górę jako domyślny system początkowy. Od tego czasu Chromeos przeszedł do używania Gentoo jako swojej bazy.
Upstart to interesujący temat, ale głównie historyczny. Możesz tego potrzebować tylko wtedy, gdy wpadniesz na stare systemy. Najczęstszą alternatywą w Linuksie jest teraz systemd. Jeśli masz zastrzeżenia dotyczące systemu, powinieneś szukać innych minimalnych systemów. Jednym ciekawym jest bezsuknie, sinit. Obsługuje trzy sygnały i musisz napisać do niego wszystkie skrypty lub zmodyfikować skrypty od kogoś innego. Może to być interesujące ćwiczenie, ale jest przydatne tylko wtedy, gdy pracujesz nad bardzo minimalnym i wyspecjalizowanym systemem.