odpowiedzią na chaos jest to, co mówi niektóre dokumenty. Ale tak naprawdę nie działa systemd. (Nie tak też rc
zrobił van Smoorenburg . Van Smoorenburgrc
zdecydowanie nie zignorował nagłówków LSB, które na początku insserv
służyły do obliczania statycznych porządków.) Dokumentacja Freedesktop, taka jak strona „Niezgodności”, jest w rzeczywistości błędna, na te i inne punkty. ( HOME
Zmienna środowiskowa w rzeczywistości jest często ustawiana, na przykład. To było całkowicie nieudokumentowane przez długi czas. Teraz jest to przynajmniej udokumentowane w podręczniku, ale ta strona WWW Freedesktop wciąż nie została poprawiona).
Natywnym formatem usługi dla systemd jest jednostka serwisowa . Właściwe zarządzanie usługami systemd działa wyłącznie w zakresie tych, które czyta z jednego z dziewięciu katalogów, w których mogą znajdować się .service
pliki (systemowe) . /etc/systemd/system
, /run/systemd/system
, /usr/local/lib/systemd/system
, A /usr/lib/systemd/system
cztery z tych katalogów.
Kompatybilność ze rc
skryptami van Smoorenburga jest osiągana dzięki programowi do konwersji o nazwie systemd-sysv-generator
. Ten program znajduje się na liście w /usr/lib/systemd/system-generators/
katalogu i dlatego jest uruchamiany automatycznie przez systemd na początku procesu ładowania przy każdym rozruchu, i ponownie za każdym razem, gdy systemd otrzymuje polecenie ponownego załadowania konfiguracji później.
Ten program jest generatorem , rodzajem pomocniczego narzędzia, którego zadaniem jest tworzenie plików jednostki usługowej w locie, w tmpfs, w którym znajdują się jeszcze trzy z tych dziewięciu katalogów (które mają być używane tylko przez generatory). systemd-sysv-generator
generuje jednostki usługowe, z których uruchamiane są rc
skrypty van Smoorenburga /etc/init.d
, jeśli nie znajdzie natywnej systemowej jednostki usługowej o takiej nazwie, która już istnieje w pozostałych sześciu lokalizacjach.
systemowe zarządzanie usługami zna tylko jednostki serwisowe. Te (ponownie) generowane automatycznie jednostki usługowe są zapisywane w celu wywołania rc
skryptów van Smoorenburga . Mają między innymi:
[Jednostka]
SourcePath = / etc / init.d / wibble
[Usługa]
ExecStart = / etc / init.d / wibble start
ExecStop = / etc / init.d / wibble stop
Otrzymano mądrość, że rc
skrypty van Smoorenburga muszą mieć nagłówek LSB i są uruchamiane równolegle bez uwzględnienia priorytetów narzuconych przez /etc/rc?.d/
system. Jest to nieprawidłowe we wszystkich punktach.
W rzeczywistości nie muszą mieć nagłówka LSB, a jeśli nie są w stanie systemd-sysv-generator
rozpoznać bardziej ograniczonych starych nagłówków komentarzy RedHat ( description:
, pidfile:
itd.). Co więcej, przy braku nagłówka LSB wróci do zawartości /etc/rc?.d
farm symbolicznych linków, odczytuje priorytety zakodowane w nazwach linków i konstruuje przed nimi / po ich zamówieniu, szeregując usługi. Nagłówki LSB nie tylko nie są wymagane i nie tylko same kodują przed / po uporządkowaniu, które serializują dane w pewnym stopniu, zachowanie awaryjne przy ich całkowitej nieobecności jest w rzeczywistości działaniem zasadniczo niezrównoleglonym.
Przyczyną, która /etc/rc3.d
nie wydawała się mieć znaczenia, jest to, że prawdopodobnie masz włączony ten skrypt w innym /etc/rc?.d/
katalogu. systemd-sysv-generator
przekłada te wymienione w dowolnym z /etc/rc2.d/
, /etc/rc3.d/
i /etc/rc4.d/
do natywnego Wanted-By
związku do Systemd roku multi-user.target
. Poziomy uruchamiania są „przestarzałe” w świecie systemowym i można o nich zapomnieć.
Dalsza lektura