Jak wyświetlić listę usług w systemie Linux

Jako administrator systemu prawdopodobnie masz do czynienia z wieloma usługami każdego dnia.

W systemie Linux usługi są wykorzystywane do wielu różnych celów.

Mogą być używane do uruchamiania serwera SSH na twoim komputerze lub mogą wykonywać pewne operacje o określonej godzinie lub dniu.

Czy używasz dystrybucji opartej na Debianie, czy a RedHat, usługi zapytań są bardzo podobne.

Jednak biorąc pod uwagę używaną dystrybucję, a dokładniej system inicjalizacji (init lub systemd), może być konieczne użycie różnych poleceń.

W tym samouczku nauczysz się jak możesz, biorąc pod uwagę swojego menedżera systemu, wyświetlić listę wszystkich usług na komputerze z systemem Linux.

Spis treści

Określ używany menedżer systemu

Jak zapewne wiesz, ostatnie dystrybucje używają menedżera systemu Systemd.

Jednak nie zawsze tak było: w przeszłości większość dystrybucji korzystała z menedżera systemu SysVinit.

W rezultacie istnieją naprawdę dwa sposoby zarządzania usługami w systemie Linux.

Zanim nauczysz się poleceń wyświetlających usługi, musisz znać menedżera systemu, którego aktualnie używasz.

Aby określić aktualnego menedżera systemu, najłatwiej jest użyć polecenia ” pstree ”i sprawdzić pierwszy proces kiedykolwiek uruchomiony w Twoim systemie.

Jeśli widzisz „systemd”, oznacza to oczywiście, że aktualnie używasz systemd. Jeśli jednak widzisz „ init ”oznacza, że używasz SysVinit.

W systemie Ubuntu 14.04, który nadal używa starego systemu init, Twoje„ pstree ”może wyglądać tak.

Lista usług za pomocą systemctl

Najłatwiejszym sposobem wyświetlenia listy usług w systemie Linux, gdy jesteś w systemie systemd, jest użycie polecenia „systemctl”, po którym następuje „list-units”. Możesz określić opcję „–type = usługa”, aby ograniczyć wyniki tylko do usług.

Domyślnie to polecenie pokaże tylko te usługi, które są aktywne lub te, które uległy awarii w systemie. Na powyższym zrzucie ekranu większość usług jest aktywna, ale ta logrotate (zaznaczona na czerwono) jest oznaczona jako nieudana.

Super, nauczyłeś się, jak łatwo wyświetlić listę usług na serwerze Linux.

Jednak, jak być może zauważyłeś, nie masz dostępu do wszystkich usług: co z usługami nieaktywnymi? Co z usługami, które nie zostały załadowane przez systemd podczas rozruchu?

Wyświetl wszystkie usługi włączone Linux używający list-jednostek

Aby wyświetlić listę wszystkich usług, czyli aktywnych i nieaktywnych, musisz użyć polecenia „systemctl list-units”, a następnie opcji „–all”.

Podobnie możesz ograniczyć wyniki do usług tylko przy użyciu filtru typu.

Jak widać, wyszczególniono również nieaktywne usługi, co może być wygodne, jeśli właśnie napisałeś swoją usługę i opiekujesz się nią na liście.

W tym przypadku wymienione są tylko usługi załadowane. Podczas rozruchu systemd ładuje pliki jednostek i może nie ładować określonej usługi, jeśli stwierdzi, że nie będzie ona używana przez system.

W konsekwencji istnieje prawdziwa różnica między „załadowanym ”I„ zainstalowane ”usługi. Usługi „zainstalowane” oznaczają, że pliki jednostek można znaleźć w odpowiednich ścieżkach.

Lista usług według stanu

W niektórych przypadkach możesz być zainteresowany tylko usługami, które się nie powiodły. W tym celu możesz określić stan którego szukasz jako opcji polecenia systemctl.

Gdzie „state” może być jedną z następujących wartości: active, inactive, activating, dezaktywacja, niepowodzenie, nieodnaleziony lub martwy.

Na przykład, jeśli interesują nas tylko „nieudane” usługi, uruchomimy następujące polecenie

Wyświetl wszystkie pliki usług przy użyciu plików-jednostek-list

Wreszcie, jeśli interesują Cię pliki usług „załadowane”, „zainstalowane”, „wyłączone” oraz „włączone”, istnieje inne polecenie to może być całkiem przydatne.

Aby wyświetlić listę wszystkich dostępnych plików usług, musisz użyć polecenia „systemctl”, a po nim „list-unit-files”. Opcjonalnie możesz określić typ za pomocą opcji „–type = usługa”.

Alternatywnie możesz użyć polecenia „grep” w celu wyszukania określonych ścieżek w systemie, które mogą zawierać pliki usług.

Gratulacje, wiesz, jak możesz lista usług, jeśli twój system używa systemd!

Lista usług korzystająca z usługi

Najłatwiejszym sposobem wyświetlenia listy usług w systemie Linux, gdy jesteś w systemie inicjującym SystemV, jest użycie ” service ”, po którym następuje opcja„ –status-all ”. W ten sposób zostanie wyświetlona pełna lista usług w Twoim systemie.

Jak widać, każda usługa jest wymienione, poprzedzone symbolami pod nawiasami. Symbole te oznaczają:

  • +: oznacza, że usługa e działa;
  • -: oznacza, że usługa w ogóle nie działa;
  • ? : oznacza, że Ubuntu nie był w stanie stwierdzić, czy usługa działa, czy nie.

Dlaczego więc niektóre usługi mają stwierdzić, czy działają, czy nie, a inne nie?

Wszystko sprowadza się do implementacji skryptu startowego. W niektórych skryptach, na przykład w skrypcie udev, możesz zobaczyć, że polecenie „status” zostało zaimplementowane.

Nie dotyczy to na przykład skryptu„ dns-clean ”, co jest powodem, dla którego masz pytanie zaznacz, kiedy odpytujesz tę usługę.

Wyświetl usługi SysVinit w folderach

Innym sposobem wyświetlenia bieżącej listy usług jest użycie polecenia „ls” na folderach zawierających wszystkie skrypty w system Linux, a mianowicie „/etc/init.d”.

Podsumowanie

W tym samouczku dowiedziałeś się, jak łatwo wyświetlić listę usług w systemie Linux niezależnie od tego, czy używasz systemd czy SysVinit.

Jeśli jesteś zainteresowany tworzeniem własnych usług, zalecamy zapoznanie się z następującymi zasobami. Mogą być naprawdę przydatne, aby to poprawnie osiągnąć.

  • Pisanie skryptu startowego dla systemów init;
  • Uruchamianie usług podczas rozruchu przy użyciu systemd;

Jeśli interesuje Cię administracja systemem Linux, w naszej witrynie mamy pełną sekcję na ten temat, więc koniecznie zapoznaj się z nią.

Ikony wykonane przez Freepik z FlatIcon

Write a Comment

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