Jak wymienić usługę za pomocą SystemD

Jak wymienić usługę za pomocą SystemD
Ten artykuł może być jednym z poleceń, ale wynikowy wydruk jest bardzo długi.

Polecenie zrzutu

Jeśli ktoś poprosi Cię o pokazanie całej konfiguracji systemu, użyj polecenia zrzutu.

$ Systemd--Dump-Configuration-Items

Plik obejmuje wszystkie jednostki, które masz w systemie. Gdy programista będzie dostępny ten plik, osoba przejdzie przez to, co masz, i spróbuje znaleźć problemy, z którymi się borykają. Gotowe. Jednak nie czytałbyś tego artykułu, gdybyś chciał pozwolić komuś innemu zrobić wszystko. Pozwól nam zobaczyć, co możesz zrobić z usługą na raz i nauczmy się niektórych sztuczek, aby filtrować wyniki.

Hierarchia systemu

Aby stać się wydajnym, musisz zdać sobie sprawę z tego, że w SystemD masz hierarchię i możesz ustawić każdą usługę, aby polegać i/lub czekać na inne usługi. Różne sposoby, w jaki to robisz, są widoczne w plikach usług. Różne stwierdzenia, które masz, to „potrzeby”, „wymagane”, „przed” i „po”. Do skutecznej analizy możesz je użyć, aby sprawdzić, czy urządzenie jest narzucone z powodu zależności. Następnie możesz prześledzić, gdzie leży problem podstawowy. Oto ekm próbki tego.

$ Systemctl zależności od list--zanim xpra.praca

Wydruk pokazuje inne jednostki, które XPRA.Usługa polegała na. W takim przypadku pozostałe jednostki są aktywne, więc Wee musi skupić się na tym, dlaczego sama jednostka jest zepsuta. W przykładzie brakowało pliku certyfikatu.

Najważniejszym zastosowaniem tego jest zbadanie, czy Twoja usługa brakuje zależności, użyj polecenia w ten sposób.

$ Systemctl zależność od listy Xringd

Rezultatem jest długa lista, wygodnie zorganizowana na drzewie i pokazuje wszystkie usługi jako zielone lub czerwone, jeśli coś jest nie tak. Możesz także zobaczyć zależności w pliku usług. Otwórz plik za pomocą ulubionego edytora lub użyj SystemCTL, który otworzy plik za pomocą domyślnego edytora.

Wymień aktywne usługi

Kiedy chcesz zbadać system, musisz wiedzieć, jak jednostki pasują do siebie. Aby to zrobić, masz wiele opcji drukowania szczegółów. Możesz wymienić, które systemy są zajęte, nieudane i tak dalej. Co ważniejsze, możesz wymienić sposób, w jaki są złożone, które jednostki, usługi itp. Obecna jednostka zależy od. Głównym poleceniem, aby to zrobić, jest systemCtl, opcje są przydatne do zawężenia w konkretnym problemie.

Aby uzyskać właściwe użycie systemuCTL, przyjrzyj się uważnie opcjom polecenia. Istnieją opcje wyboru dokładnie tego, czego potrzebujesz, szczególnie w odniesieniu do stanu dowolnej usługi. Tutaj szukamy usług, które mają problemy.

$ Systemctl List-Unit-Files --Type = Service

Ta lista jest również długa i musisz przewijać wszystkie usługi, aby znaleźć to, czego szukasz. Z kilkoma parametrami możesz filtrować dla określonego lub tych, które są wyłączone. Poniższe polecenie znajdzie wszystkie zamaskowane jednostki.

$ SystemCtl List-Unit-Files --Type = Service --state = Masked

Usługi zamaskowane są zablokowane, aby inne usługi nie mogły ich rozpocząć, nawet jeśli druga usługa ich potrzebuje. Można to wykorzystać do zabezpieczenia, że ​​nie masz sprzecznych usług. Zwykle wiele usług jest maskowanych przez menedżera pakietów po usunięciu pakietu. Możesz całkowicie usunąć plik usługi, jeśli chcesz po usunięciu usługi. Możliwe jest również, że wkurza wiele usług, które chcesz.

Niektóre usługi są maskowane przez procesy i nie zawsze zamierzasz zamaskować usługę. Kiedy tak się stało z twoim systemem, pierwszą akcją, którą należy podjąć, jest zdemaskowanie za pomocą Systemctl. Jednak nie zawsze jest to możliwe, więc musisz odebrać link do odpowiedniego katalogu. W większości systemów będzie to lib/systemd/system. Zanim to zrobisz, sprawdź, czy plik jest w rzeczywistości linkiem do /dev /null.

$ ls -l lib/systemd/system> | grep null

Kiedy masz pewność, że chcesz usunąć ten link, usuń go za pomocą RM lub unlink.

$ rm/lib/systemd/system/Udisks2.praca

Teraz, gdy wiesz, jak to zrobić, usłyszysz to ostrzeżenie: wiele razy trzeba mieć tam ten link. Weźmy na przykład LVM2, jest maskowany w operacji, aby nie zakłócać nowego systemu, w którym LVM2 pojawia się tyle małych usług. Zobacz wynik:

$ Systemctl Status LVM2*

Usunięcie linku może spowodować spustoszenie w systemie, ponieważ sam LVM2 potrzebuje go, aby uniknąć konfliktów. To tylko przykład, więc uważaj przed przejściem dalej.

Wniosek

Kiedy chcesz wymienić usługi w SystemD, musisz najpierw zastanowić się nad tym, czego szukasz w swoim zadaniu. Szukasz usługi, której potrzebujesz, czy też widzisz, że masz zbyt wiele usług. Tak czy inaczej, musisz dostosować swoje zapytanie do swoich konkretnych potrzeb. SystemD na początku wygląda myląco, ale kiedy przyjrzysz się bliżej, wszystko używa prostego sposobu ujednolicenia uruchamiania, aby usługi mogły zacząć się równolegle tam, gdzie system potrzebuje systemu, jedno.