Jak korzystać z narzędzia SystemCtl w Linux

Jak korzystać z narzędzia SystemCtl w Linux
Niezależnie od tego, czy jesteś doświadczonym administratorem systemu, czy nowym użytkownikiem Linux, zarządzanie usługami jest jedną z podstawowych operacji, które będziesz musiał przeprowadzić. Stąd zdecydowanie zrozumienie, jak działają usługi i jak je zarządzać, jest wielką zaletą.

Ten samouczek przechodzi przez podstawy zarządzania usługami w Linux i jak korzystać z systemuCTL do zarządzania usługami, uzyskiwania informacji o jednostkach systemowych i uzyskania przydatnych informacji o stanie Usług w twoim systemie.

Co to jest SystemCtl?

SystemCtl to narzędzie linii poleceń Linux używana do kontrolowania i zarządzania systemem i usługami. Możesz myśleć o SystemCtl jako interfejsie sterowania dla systemu init, umożliwiając komunikowanie się z systemem i wykonywanie operacji.

SystemCtl jest następcą INIT.system D; Zawiera biblioteki, demony i narzędzia, których można użyć do zarządzania usługami w systemie Linux.

Co to jest usługa/jednostka?

W języku systemowym usługa lub jednostka jest zasobem lub obiektem, o której SystemD jest świadomy i wie, jak się zajmować.

Chociaż technicznie poprawne jest klasyfikowanie jednostki jako usługi, w systemie jednostki są bardziej abstrakcyjne i często składają się z pul zasobów, montażów systemu plików, protokołów sieciowych, urządzeń i natywnych usług Linux.

Jednostki są zdefiniowane w pliku znanym jako plik jednostki. SystemD może zarządzać plikami jednostkowymi z dowolnego miejsca, ale ich główną lokalizacją jest/etc/systemd/system systemowy. Pliki jednostkowe w tym katalogu są głównie dostarczane przez użytkownika. W porównaniu z innymi lokalizacjami menedżer SystemD przypisuje wyższe pierwszeństwo do plików jednostkowych w powyższym katalogu.

NOTATKA: Możesz także znaleźć pliki jednostkowe znajdujące się w katalogu/lib/systemd/system, który zawiera pliki jednostkowe dostarczane przez system i zainstalowane pakiety. Upewnij się, aby sprawdzić obie lokalizacje podczas edytowania pliku jednostkowego.

Typy jednostek systemowych

Pliki jednostkowe są oznaczone sufiksem w pliku jednostki, które dają administratorowi wskazanie jego celu w oparciu o sufiks.

Poniżej znajdują się pliki jednostkowe znalezione w SystemD.

  • .praca - Pliki jednostki serwisowej określają, w jaki sposób SystemD zarządza usługą. Zazwyczaj kończą .rozszerzenie usługi. Pliki jednostki serwisowej opisują, jak uruchomić, zatrzymać, ponownie załadować i uruchomić usługę oraz zależności wymagane do zarządzania Usługą.
  • .cel - Jednostki docelowe zapewniają punkty synchronizacji z innymi usługami podczas uruchamiania.
  • .plasterek - Pliki jednostek pokrojonych koduje informacje o jednostkach plasterków systemowych. Jednostki wycinkowe są częścią drzewa grupy kontrolnej Linux, które umożliwia alokacja zasobów i ograniczenie procesów związanych z plasterem. Tutaj możesz dowiedzieć się więcej o SystemD Resource Control.
  • .gniazdo elektryczne - Plik jednostki gniazda koduje informacje o gniazdku sieciowym, IPC lub systemie plików FIFO Buffer i zarządzany przez SystemD, którego SystemD używa do aktywacji opartej na gniazdach.
  • .urządzenie - Konfiguracje urządzenia definiują urządzenie jako odsłonięte w drzewie urządzenia SYSFS/UDEV.
  • .regulator czasowy - Jednostki zegarowe definiują zarządzany i kontrolowany przez systemd w celu zaplanowanej aktywacji.
  • .migawka - Pliki urządzeń migawkowych umożliwiają wycofanie bieżącego stanu systemu po wprowadzeniu zmian. Tworzymy je przy użyciu polecenia Systemd Snapshot.
  • .zamieniać - Swap jednostki kodują informacje o przestrzeni swapowej, takie jak nazwa urządzenia lub ścieżka przestrzeni swapowej.
  • .uchwyt - Zamontować pliki jednostki kodować informacje o punktach montażu w systemie zarządzanym przez SystemD.
  • .automount - Są to pliki jednostkowe, które definiują punkty montażowe, które są automatycznie zamontowane.

To są niektóre pliki jednostkowe zarządzane przez systemd. Zazwyczaj te pliki jednostkowe w systemie współpracują ściśle w celu zarządzania systemem, usługami, demonami i innymi zasobami w systemie.

NOTATKA: Istnieją inne pliki jednostkowe, ale nie będziesz musiał się o nie zbytnio martwić, chyba że nurkujesz głęboko w jądrze.

Pliki jednostkowe

Aby wyświetlić pliki jednostkowe dostępne w systemie, możesz wymienić pliki w/lib/systemd/system lub/etc/systemd/system.

Na szczęście Systemd ma na to polecenie. Możemy wykonać polecenie:

$ sudo systemCtl List-Units

Uruchomienie tego polecenia pokaże jednostki dostępne w systemie.

Aby filtrować tylko określone pliki jednostkowe, możesz użyć opcji -Type = [jednostka typu]. Na przykład, aby wyświetlić pliki jednostek serwisowych, używamy polecenia:

$ sudo systemCtl List-Units --Type = Service

Oto przykład wyjścia:

Dane wyjściowe z polecenia SystemCtl List-Units wykorzystuje metodę organizacyjną opartą na kolumnie.

Oto, co reprezentuje każda kolumna.

  • JEDNOSTKA - Pierwsza kolumna to „jednostka.„To pokazuje nazwę pliku jednostki.
  • OBCIĄŻENIE - To pokazuje, czy definicja jednostki załadowała poprawnie.
  • AKTYWNY - To pokazuje stan aktywacji wysokiego poziomu.
  • POD - To pokazuje stan aktywacji niskiego poziomu. Wartości w tej kolumnie będą zależeć od typu jednostki.
  • OPIS - Opis pliku jednostki.

Możesz także filtrować jednostki według ich stanów. Na przykład, aby pokazać tylko nieaktywne jednostki, użyj polecenia:

$ sudo systemCtl List -jednostki -State = nieaktywne

Powyższe pokazuje nieaktywne (lub martwe podrzędne jednostki. Większość jednostek w tym stanie rozpoczyna się przed sesjami użytkowników; Obejmują one Plymouth, Network Activations Service, tryb ratowania, ręczne DB i wiele innych.

Aby wyświetlić wszystkie pliki jednostkowe w systemie, możesz dołączyć -wszystko do polecenia List -Units.

$ sudo systemCtl List -jednostki -wszystko

Możesz przewijać listę dostępnych jednostek, naciskając klawisz Space.

Jak wyświetlić zawartość pliku jednostki

Aby wyświetlić wpisy i konfigurację w pliku jednostki, możesz powiedzieć SystemDowi, aby wywołał polecenie CAT i nazwisko jednostki.

Na przykład, aby pokazać zawartość jednostki Plymouth, użyj polecenia

$ sudo systemctl cat Plymouth

To polecenie zrzuci zawartość pliku, jak pokazano poniżej:

Jak edytować pliki jednostkowe

Aby edytować pliki jednostkowe, możesz użyć polecenia SystemD, a następnie opcji edycji i nazwy urządzenia.

$ sudo systemctl edytuj Plymouth

Polecenie uruchomi edytor tekstu Nano, umożliwiając edycję określonego pliku jednostki.

NOTATKA: Chyba że jest to konieczne, UNIKAĆ Edycja plików jednostek krytycznych udostępnianych przez system.

Zarządzanie usługami z SystemCtl

Pliki jednostkowe, które kończą się .Usługa jest łatwa w zarządzaniu za pomocą narzędzia SystemD, Systemctl. Poniżej znajdują się operacje, które możemy wykonać z SystemCtl.

Jak rozpocząć usługi

Aby rozpocząć usługę z systememCTL, wywołujemy polecenie:

$ sudo systemctl start nginx.praca

W powyższym poleceniu powiedzieliśmy SystemD, aby uruchomił usługę Nginx za pomocą Nginx.Plik jednostki serwisowej.

Przekazywanie pełnego sufiksu pliku jednostkowego z systememctl nie jest wymagane. Możesz użyć nazwy usługi, na przykład:

$ sudo systemctl start nginx

W większości jednostek serwisowych nie ma wyjścia, jeśli usługa rozpocznie się pomyślnie. Jeśli jednak wystąpi błąd, SystemD wyświetli błąd i kod stanu.

Jak zatrzymać usługi

Aby zatrzymać usługę, użyj argumentu stopu w poleceniu SystemCtl

$ sudo systemctl stop nginx

Podobnie operacja zatrzymania nie zapewnia wyjścia po pomyślnym zakończeniu.

Jak ponownie ładować usługi

Ponowne załadowanie usługi działa poprzez zatrzymanie procesów pracowników, zastosowanie zmian konfiguracji i ponownego uruchomienia procesów pracowników. To nie zamyka samej usługi.

Ta funkcja może być pomocna, gdy usługi muszą być online, podobnie jak w przypadku baz danych i serwerów internetowych.

Aby ponownie załadować usługę w SystemCTL, używamy polecenia:

$ sudo systemCtl Reload nginx

Jak ponownie uruchomić usługi

Z drugiej strony ponowne uruchomienie zamknie usługę i pracowników przetwarza i ponownie je uruchomi. Proces ponownego uruchomienia może spowodować przestoje, co czyni go bardzo obowiązującym podczas rozwiązywania problemów.

Aby zrestartować usługę, użyj polecenia:

$ sudo systemctl restart nginx

Jak włączyć usługi w BOOT

Jeśli chcesz, aby konkretna usługa działała podczas uruchamiania systemu, możesz użyć polecenia Enable.

Na przykład:

$ sudo systemCtl włącz Nginx

Powyższe polecenie nie umożliwia jednak usługi podczas aktywnej sesji. Aby to zrobić, dodaj flagę -Now.

$ sudo systemctl włącz Nginx -teraz

Jeśli chcesz włączyć utworzoną niestandardową usługę, upewnij się, że SystemD może uzyskać dostęp do pliku jednostki. Nie przechowuj pliku jednostki w katalogu /domu. W przypadku plików jednostek niestandardowych upewnij się, że umieścisz je w/etc/systemd/system.

Jak sprawdzić status usługi

Aby sprawdzić status usługi w SystemD, użyj polecenia statusu:

$ sudo systemCtl status nginx

To polecenie pokaże bieżący status usługi. Poniższy obraz pokazuje aktywną usługę Nginx

Jeśli usługa zostanie zatrzymana, otrzymasz wyjście podobne do tego pokazanego poniżej:

Wniosek

W tym przewodniku omówiliśmy pojęcia plików SystemD i jednostek. SystemD jest kluczową częścią Linux, a główne rozkłady Linux przyjęły teraz jego użycie. Dlatego wiedza o zarządzaniu i zarządzaniu może być bardzo korzystna.