Jak wylistować usługi Linux za pomocą systemctl

Jak wylistować usługi Linux za pomocą systemctl

W artykule omówiono zarządzanie usługami w systemie Linux z użyciem polecenia systemctl. Przedstawiono kluczowe komendy do wyświetlania, szczegółowego przeglądania oraz listowania włączonych usług.

Podsumowanie

  • Na większości urządzeń z systemem Linux możesz uruchomić "systemctl --type=service --state=running", aby zobaczyć działające usługi.
  • Uzyskaj szczegółowe informacje o usłudze, na przykład SSH, za pomocą polecenia "systemctl status sshd".
  • Aby zobaczyć wszystkie włączone pliki jednostek w systemie, użyj "systemctl list-unit-files --state=enabled".

Twój komputer z Linuxem polega na wielu zadaniach w tle, zwanych usługami lub demonami. W dystrybucjach opartych na systemd masz wbudowane polecenia, które pozwalają zobaczyć, które usługi są uruchomione, wyłączone lub niepowodujące.

Czym są usługi i demony?

Usługi i demony to zadania w tle, które działają bez interfejsu użytkownika, nie wymagają ludzkiej interakcji i zazwyczaj są uruchamiane podczas rozruchu komputera.

Niegdyś usługi były uruchamiane przez init, który był pierwszym procesem uruchamianym. Szczegóły usług były przechowywane w zbiorze skryptów zlokalizowanych w katalogu "/etc/init/d". W dystrybucjach nieopartych na systemd nadal tak jest.

W świecie systemd, usługi są uruchamiane przez systemd, który jest teraz pierwszym uruchamianym procesem. Szczegóły usług są przechowywane w plikach jednostek w katalogu "/usr/lib/systemd".

Zgodnie z dokumentacją systemd jest menedżerem systemu i usług. Możesz użyć polecenia systemctl, aby badać i kontrolować różne aspekty systemu systemd, w tym usługi i demony.

Ponieważ rozpatrujemy polecenia specyficzne dla systemd, pierwszą rzeczą, którą musisz wiedzieć, jest to, czy uruchamiasz dystrybucję opartą na systemd, czy nie.

Oparty na init czy systemd?

Znaczna większość dystrybucji Linux używa systemd, w tym Arch, Red Hat i Debian oraz wiele dystrybucji z nimi pochodzących. Obejmuje to rodzinę dystrybucji Ubuntu, Fedora i jej pochodne, a także Manjaro oraz inne dystrybucje oparte na Arch.

Jednak istnieją forki lub odmiany niektórych z tych dystrybucji, które zostały stworzone specjalnie, aby uniknąć konieczności używania systemd. Co więcej, są inne systemy init, które ktoś może wybrać zamiast tego, który był domyślnie dostępny w ich dystrybucji, takie jak runit lub s6-linux-init.

Jeśli musisz zarządzać komputerem z Linuxem, który nie został przez Ciebie skonfigurowany, jedynym sposobem, aby się upewnić, czy używa systemd, jest sprawdzenie. Możemy to zrobić, patrząc na drzewo procesów za pomocą polecenia pstree. Musimy tylko zobaczyć samą górę drzewa—szukamy w końcu pierwszego uruchamianego procesu—więc przefiltrujemy dane przez polecenie head i poprosimy o pierwsze pięć wpisów.

pstree | head -5

Możemy zobaczyć, że systemd jest pierwszym procesem uruchamianym po rozruchu, więc z pewnością korzystamy z instalacji Linux opartej na systemd.

Użycie systemctl do wyświetlania usług

Polecenie do wyświetlania usług i demonów to systemctl. Możemy doprecyzować polecenie systemctl za pomocą opcji type i state. Prosisz systemctl, aby raportowało o usługach, które są w stanie uruchomionym.

systemctl --type=service --state=running

Tworzona jest tabela informacji. Jeśli jest zbyt szeroka lub długa dla okna terminala, jest wyświetlana w domyślnym narzędziu do przeglądania plików, którym prawdopodobnie będzie less.

Aby zobaczyć prawą stronę tabeli, naciśnij klawisz Strzałka w prawo. Aby wrócić do zwykłego widoku, naciśnij klawisz Strzałka w lewo.

Naciśnij klawisz Q, aby wyjść z trybu less. Wyświetlane kolumny to:

  • Jednostka: Nazwa usługi lub demona. Kolumna jest zatytułowana "Jednostka", ponieważ cokolwiek znajduje się w tej kolumnie zostało uruchomione przy użyciu informacji, które systemd znalazło w pliku jednostki.
  • Załadunek: Stan załadunku usługi lub demona. Może być załadowany, nieznaleziony, błędna konfiguracja, błąd lub zablokowany.
  • Aktywny: Ogólny stan, w jakim znajduje się usługa lub demon. Może być aktywny, przeładowywany, nieaktywny, nieudany, aktywujący lub dezaktywujący.
  • SUB: Stan podrzędny usługi lub demona. Może być martwy, zakończony, nieudany, nieaktywny lub działający.
  • Opis: Krótki opis jednostki.

Mamy możliwość przetworzenia wyniku systemctl przez grep, jeśli chcemy skupić się na jednej usłudze. To polecenie izoluje wpis tabeli dla usługi ssh.

systemctl --type=service --state=running | grep ssh

Do tej pory filtrowaliśmy zawartość tabeli, podając opcję state=running. Możemy użyć dowolnej z możliwych wartości podstanów: dead, exited, failed, inactive lub running.

Przyjrzyjmy się usługom, które zakończyły działanie:

systemctl --type=service --state=failed

Można używać kombinacji podstanów. Wpisz je jako listę rozdzieloną przecinkami. Upewnij się, że nie ma białych znaków między opcjami. Zauważ, że to znajduje usługi, które pasują do dowolnego stanu.

systemctl --type=service --state=failed,exited

Naciskając strzałkę w prawo, aby zobaczyć kolumny poza ekranem, dostrzegamy mieszankę usług zakończonych i nieudanych na liście.

Domyślnie systemctl wyświetla procesy—usługi i demony—które zostały uruchomione przez systemd, ponieważ systemd znalazł plik jednostki zawierający ważny plik jednostki dla nich. Dlatego skrótowo nazywa się je „jednostkami”.

Jest opcja, aby wyraźnie zażądać od systemctl listy jednostek, ale ponieważ jest to domyślna akcja, nie jest często używana.

Te polecenia dają takie same wyniki.

sudo systemctl list-units --type=service --state=running
sudo systemctl --type=service --state=running

Używanie systemctl do listowania jednostek

Możemy rozszerzyć zakres polecenia systemctl, włączając opcję list-unit-files. To nie tylko raportuje o usługach i demonach, które zostały uruchomione, ale także wyświetla wszystkie pliki jednostek zainstalowane na twoim komputerze.

systemctl list-unit-files --state=enabled

Wyświetlana jest kolorowa tabela.

Usunięcie opcji state usuwa filtrację. Wynik będzie zawierał wszystkie zainstalowane pliki jednostek, niezależnie od ich stanu.

systemctl list-unit-files

Wynik zawiera znacznie więcej wpisów niż rezultaty z poprzednich poleceń.

Na naszym testowym komputerze lista wyników jest prawie cztery razy dłuższa niż wynik z poprzednich poleceń.

Jeśli chcesz użyć opcji state, możesz użyć z nią wielu stanów, tak jak widzieliśmy wcześniej. Te same zasady obowiązują. Podaj opcje jako wartości oddzielone przecinkami i nie dodawaj białych znaków.

To polecenie wyświetli wszystkie pliki jednostek, które są wyłączone lub nie udało się ich uruchomić.

systemctl list-unit-files --state=disabled,failed

Wyświetlana jest ograniczona liczba wyników, filtrowanych według wybranych przez Ciebie opcji stanu.

Spojrzenie na jedną usługę w szczegółach

Jeśli coś dotyczącego jednej usługi lub demona wzbudza twoje zainteresowanie i zasługuje na dokładniejsze zbadanie, możesz przyjrzeć się temu w szczegółach, używając opcji statusu systemctl.

Przyjrzyjmy się demonowi SSH, sshd. Wszystko, co musimy zrobić, to użyć opcji statusu i nazwy usługi lub demona.

systemctl status sshd

To kompaktowe wyświetlenie pokazuje:

  • Nazwę usługi wraz z krótkim opisem. Kolorowa kropka pokazuje, czy działa, czy nie. Zielona oznacza, że działa, czerwona oznacza, że nie działa.
  • Co zostało załadowane, w tym ścieżkę do pliku jednostki.
  • Jak długo działa.
  • Gdzie znajduje się dokumentacja w podręczniku man.
  • ID procesu działającej instancji.
  • Ile równoczesnych instancji tej usługi działa. Zwykle będzie to jedna.
  • Ile pamięci jest wykorzystywanej.
  • Ile czasu CPU zostało wykorzystane.
  • Grupa kontrolna, do której należy usługa.

Wyświetlane są również odpowiednie wpisy z dziennika systemowego. Są to zazwyczaj zdarzenia, takie jak uruchomienie usługi. Mogą być informacyjne, jeśli badamy usługę lub demona, który nie uruchomił się poprawnie.

Systemy autonomiczne

Usługi i demony zapewniają wiele automatycznych działań systemu operacyjnego, więc są kluczowe. To oznacza, że ich zdrowie jest również kluczowe.

Uzyskanie widoku swoich usług, demonów i plików jednostek jest.

łatwy i informacyjny. To także cenny krok w rozwiązywaniu problemów, jeśli usługa lub demon odmawia uruchomienia.

Jeśli ciekawią Cię artykuły podobne do Jak wylistować usługi Linux za pomocą systemctl, zajrzyj do kategorii Linux i odkryj jeszcze więcej interesujących treści.

Indeks
  1. Podsumowanie
  • Czym są usługi i demony?
  • Oparty na init czy systemd?
  • Użycie systemctl do wyświetlania usług
  • Używanie systemctl do listowania jednostek
  • Spojrzenie na jedną usługę w szczegółach
  • Systemy autonomiczne
  • Możesz być zainteresowany

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

    Go up