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.
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.
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.