Ten artykuł może być jednym poleceniem krótkim, 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 deweloper ma ten plik dostępny, osoba przejdzie przez to, co masz i spróbuje znaleźć problemy, z którymi się borykasz. Koniec i koniec., Jednak nie czytałbyś tego artykułu, gdybyś pozwolił komuś zrobić wszystko. Zobaczmy, co możesz zrobić z usługą na raz i nauczyć się kilku sztuczek, aby filtrować wyniki.

hierarchia systemd

aby stać się wydajnym, musisz zdać sobie sprawę, że w systemd masz hierarchię i możesz ustawić każdą usługę na zależną i / lub czekać na inne usługi. Różne sposoby, w jakie to robisz, są widoczne w plikach usług. Różne wypowiedzi, które masz to „chce”, „wymagane”, „przed” i „po”., Aby uzyskać skuteczną analizę, możesz ich użyć, aby sprawdzić, czy Twoja jednostka jest wyłączona z powodu zależności. Następnie można prześledzić, gdzie leży podstawowy problem. Oto przykład tego.

$ systemctl list-dependencies –before xpra.serwis

Wydruk pokazuje pozostałe jednostki xpra.usługa polegaj na. W tym przypadku pozostałe jednostki są aktywne, więc musimy skupić się na tym, dlaczego sama jednostka jest zepsuta. W przykładzie brakowało pliku certyfikatu.,

najważniejszym jego zastosowaniem jest zbadanie, czy w Twoim serwisie brakuje zależności, użyj polecenia w ten sposób.

$ systemctl list-dependencies xringd

wynikiem jest długa lista, wygodnie zorganizowana w drzewie i pokazująca wszystkie usługi jako zielone lub czerwone, jeśli coś jest nie tak. Zależności można również zobaczyć w pliku usługi. Otwórz plik za pomocą ulubionego edytora lub użyj systemctl, który otworzy plik za pomocą domyślnego edytora.,

Lista aktywnych usług

Jeśli 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 ich łączenia, jaką jednostkę, usługę itp. aktualna Jednostka zależy od. Głównym poleceniem, aby to zrobić jest systemctl, opcje są przydatne, aby zawęzić do konkretnego problemu.

aby uzyskać prawidłowe użycie systemctl, uważnie przyjrzyj się opcjom polecenia., Istnieją opcje, aby wybrać dokładnie to, czego potrzebujesz, zwłaszcza w odniesieniu do stanu wszelkich usług. Tutaj szukamy usług, które mają problemy.

$ systemctl list-unit-files –type=service

Ta lista jest również długa i musisz przewinąć wszystkie usługi, aby znaleźć to, czego szukasz. Dzięki kilku innym parametrom możesz filtrować dla konkretnego lub tych, które są wyłączone. Poniższe polecenie znajdzie wszystkie jednostki, które są zamaskowane.,

$ systemctl list-unit-files –type=service –state=masked

Masked services are blocked so that other services cannot start them, even if the other service needs them. Można tego użyć do zabezpieczenia, że nie są uruchomione sprzeczne usługi. Zazwyczaj 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 niszczy wiele usług, które chcesz, więc upewnij się, że wiesz, czy potrzebujesz usług maskowanych.,

niektóre usługi są maskowane przez procesy i nie zawsze masz zamiar, aby usługa była maskowana. Gdy tak się stało w Twoim systemie, pierwszą czynnością do podjęcia jest zdemaskowanie za pomocą systemctl. Jednak nie zawsze jest to możliwe, więc musisz usunąć link w odpowiednim katalogu. W większości systemów będzie to lib / systemd / system. Zanim jednak to zrobisz, sprawdź, czy plik jest rzeczywiście łączem do /dev / null.,

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

gdy jesteś pewien, że chcesz usunąć ten link, usuń go za pomocą RM lub unlink.

$ RM /lib/systemd/system/udisks2.serwis

teraz, gdy wiesz, jak to zrobić, usłysz to Ostrzeżenie: wiele razy trzeba mieć ten link w tam. Weźmy na przykład lvm2, jest on maskowany przed działaniem, więc nie będzie kolidował z nowym systemem, w którym lvm2 pochodzi tyle małych usług., Zobacz wynik:

$ systemctl status lvm2*

usunięcie linku może spowodować spustoszenie w systemie, ponieważ sam lvm2 potrzebuje go wyłączyć, aby uniknąć konfliktów. To tylko przykład, więc uważaj, zanim ruszysz dalej.

wnioski

Jeśli chcesz wyświetlić listę usług w systemd, musisz najpierw zastanowić się, czego szukasz w swojej misji. Szukasz usługi, której potrzebujesz, lub widzisz, że masz zbyt wiele usług. Tak czy inaczej, musisz dostosować swoje zapytanie do swoich konkretnych potrzeb., Systemd wygląda mylące na początku, ale kiedy przyjrzeć się bliżej, to wszystko używa prostego sposobu, aby ujednolicić rozruch, więc usługi mogą uruchamiać się równolegle tam, gdzie system tego potrzebuje, będąc w stanie mieć każdą usługę czekać na konkretną usługę, od której zależą.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *