Jak uruchamiać, zatrzymywać i ponownie uruchamiać usługi w systemie Linux za pomocą polecenia systemctl

Usługi systemowe odgrywają kluczową rolę w funkcjonowaniu systemu Linux, obsługując różne zadania i procesy w tle. systemctl> to potężne narzędzie wiersza poleceń, które pozwala użytkownikom efektywnie zarządzać tymi usługami. W tym artykule omówimy podstawy użytkowania systemctl> do uruchamiania, zatrzymywania, ponownego uruchamiania, włączania, wyłączania i wyświetlania stanu usług w środowisku Linux.

Co to jest systemctl?

Zanim zagłębisz się w zarządzanie usługami, konieczne jest zrozumienie podstaw systemctl> . To polecenie służy do kontrolowania systemu systemowego i menedżera usług, który jest centralnym komponentem nowoczesnych dystrybucji Linuksa.

systemctl [command] [unit] 

Tutaj,

  • command> : Akcja do wykonania (np. uruchomienie, zatrzymanie, ponowne uruchomienie, włączenie, wyłączenie).
  • unit> : Usługa lub jednostka, której dotyczy problem.

Systemctl jest kontrolerem lub użyteczność Systemd (system init z zestawem programów wykonywanych w tle), pomocniczy w zarządzaniu usługami. Te polecenia są wykonywane w trybie root, jeśli nie jesteś w trybie rootowania systemu, żądając hasła roota.

Co to jest usługa?

Usługa informatyczna to proces działający w tle, który wykonuje określone zadania i funkcje bez interwencji użytkownika. Usługi często uruchamiają się automatycznie podczas uruchamiania systemu i działają w sposób ciągły, zapewniając takie funkcje, jak udostępnianie stron internetowych, udostępnianie plików lub monitorowanie systemu. Są zarządzane przez system operacyjny i w razie potrzeby można je uruchamiać, zatrzymywać lub uruchamiać ponownie. Usługi pomagają zapewnić stałą dostępność niezbędnych operacji. Przykładami są serwery internetowe, takie jak Apacz, serwery baz danych, takie jak MySQL-a, I usługi logowania do systemu.

Co to jest demon?

Demon to proces działający w tle, który działa nieprzerwanie w systemie Linux lub Unix. Wykonuje zadania bez bezpośredniej interakcji użytkownika, często rozpoczynając automatycznie przy uruchomieniu. Typowe przykłady obejmują serwery WWW, serwery baz danych i narzędzia do monitorowania systemu. Demony zwykle mają nazwy kończące się na d, np httpd> Lub sshd> . Pomagają efektywnie zarządzać funkcjami i usługami systemu.

Jaki jest system init?

System init to pierwszy proces uruchamiany podczas uruchamiania systemu Linux i odpowiedzialny za inicjalizację systemu. Zarządza usługami i procesami systemowymi, obsługując ich uruchomienie, zatrzymanie i ponowne uruchomienie. Typowe systemy init obejmują SysVinit, Upstart i systemd. System init czuwa nad poprawnym działaniem wszystkich niezbędnych usług i zarządza zależnościami pomiędzy nimi. Działa w tle, monitorując i zarządzając procesami systemowymi przez cały czas działania systemu.

Jednostki w systemd

W systemd jednostki są podstawowymi obiektami, którymi systemd zarządza i które kontroluje. Reprezentują zasoby systemowe, takie jak usługi, liczniki czasu, urządzenia i punkty podłączenia. Każda jednostka jest zdefiniowana przez plik konfiguracyjny z określonym przyrostkiem, np .service> za usługi lub .timer> dla timerów. Jednostki można uruchamiać, zatrzymywać, włączać i wyłączać za pomocą poleceń systemctl. Są one niezbędne do zdefiniowania sposobu uruchamiania systemu i zarządzania różnymi procesami i zasobami.

.jednostki serwisowe w systemd

Systemowy .service> jednostki to pliki konfiguracyjne używane do zarządzania usługami w systemach Linux. Definiują, jak i kiedy usługi powinny być uruchamiane, zatrzymywane i ponownie uruchamiane. Każdy .service> plik zawiera szczegółowe informacje, takie jak nazwa usługi, opis i polecenie do uruchomienia. Pliki te zazwyczaj znajdują się w /etc/systemd/system> Lub /lib/systemd/system> . Zarządzanie nimi obejmuje polecenia takie jak systemctl start> , systemctl stop> , I systemctl enable> .

Jak znaleźć wszystkie jednostki systemowe w systemie?

Aby wyświetlić listę dostępnych jednostek systemowych lub wyświetlić listę wszystkich usług w systemie Linux, używamy następującego polecenia:

systemctl list-unit-files --type service -all 

Jak uruchomić usługę systemową w systemie Linux

Składnia:

sudo systemctl start service.service 

Polecenie start służy do uruchomienia (aktywacji) jednej lub większej liczby jednostek podanych w linii poleceń.

Przykład:

sudo systemctl start mariadb 
start systemuctl

Rozpocznij polecenie

Jak zatrzymać usługę systemową w systemie Linux

Składnia:

sudo systemctl stop service.service 

Polecenie stop służy do zatrzymania usługi lub (dezaktywacji) jednej lub więcej jednostek podanych w wierszu poleceń.

Przykład:

sudo systemctl stop mariadb 
systemctl zatrzymaj

Polecenie zatrzymania i stan

Jak wyświetlić status usługi systemowej w systemie Linux

Składnia:

sudo systemctl status service.service 

Komenda status służy do sprawdzania statusu usługi. Wyświetl zwięzłe informacje o stanie środowiska wykonawczego dotyczące jednej lub większej liczby jednostek, a następnie najnowsze dane dziennika z dziennika. Jeśli nie określono żadnych jednostek, pokaż stan systemu.

Przykład:

sudo systemctl status mariadb 
stan systemctl

Stan polecenia

Jak ponownie uruchomić usługę systemową w systemie Linux

Składnia:

sudo systemctl restart service.service 

Polecenie restart służy do ponownego uruchomienia wykonywanej usługi. Zatrzymaj, a następnie uruchom jedną lub więcej jednostek określonych w wierszu poleceń. Jeżeli jednostki jeszcze nie pracują, zostaną uruchomione.

Przykład:

sudo systemctl restart mariadb 
ponowne uruchomienie systemuctl

Polecenie Uruchom ponownie

Jak włączyć usługę systemową w systemie Linux

Składnia:

sudo systemctl enable name_service.service 

Polecenie Enable służy do wykonania usługi od momentu inicjalizacji, jeśli składa się z jednej lub większej liczby jednostek lub instancji jednostek. Spowoduje to utworzenie zestawu dowiązania symboliczne , zakodowany w sekcjach [Install] wskazanych plików jednostkowych. konfiguracja menedżera systemu jest ładowana ponownie (w sposób równoważny przeładowaniu demona), aby mieć pewność, że zmiany zostaną natychmiast uwzględnione.

Przykład

sudo systemctl enable mariadb 

włącz systemctl

Polecenie Włącz

Stan polecenia

Jak wyłączyć usługę systemową w systemie Linux

Składnia:

sudo systemctl disable name_service.service 

Polecenie wyłączenia służy do wycofania usługi od czasu inicjalizacji jednego lub większej liczby urządzeń. Spowoduje to usunięcie wszystkich dowiązań symbolicznych do plików jednostek stanowiących kopię zapasową określonych jednostek z katalogu konfiguracji jednostki, a tym samym cofnie wszelkie zmiany wprowadzone przez włączenie lub łącze.

Przykład:

sudo systemctl disable mariadb 

wyłącz systemctl

Polecenie Wyłącz

Stan polecenia

Zamknij lub uruchom ponownie system za pomocą systemctl

Uruchom ponownie system: To instruuje systemd> aby zrestartować cały system. Wszystkie usługi zostaną zatrzymane, a system przejdzie pełny proces zamykania przed ponownym uruchomieniem.

sudo systemctl reboot 

Zamknij system: Informuje system o konieczności wyłączenia maszyny. Wszystkie usługi i procesy zostaną zatrzymane, a system zostanie bezpiecznie wyłączony.

sudo systemctl shutdown 

dziennikctl

journalctl> to polecenie używane w systemach Linux do wysyłania zapytań i wyświetlania dzienników z systemd> dziennik, będący usługą systemową gromadzącą i przechowującą dane logowania. Oto prosty przewodnik, jak używać journalctl> :

journalctl -n 10> służy do wyświetlania ostatnich 10 wpisów (wierszy) z dziennika systemowego. Oto zestawienie działania każdej części polecenia:

  • journalctl> : Wywołuje journalctl> polecenie, które służy do wysyłania zapytań i wyświetlania dzienników z dziennika systemowego.
  • -n 10> : Określa liczbę wyświetlanych linii. W tym przypadku, -n 10> instruuje journalctl> aby wyświetlić 10 ostatnich wpisów z dziennika.
journalctl -n 10 

Zabezpieczanie usługi za pomocą systemd jest podstawową praktyką mającą na celu zabezpieczenie systemu przed potencjalnymi lukami w zabezpieczeniach i nieautoryzowanym dostępem. Oto uproszczony przewodnik, jak to osiągnąć:

1. Zrozumienie plików jednostek serwisowych

  • Konfiguracja usługi : Każda usługa w systemd jest zarządzana przez plik jednostkowy, zwykle znajdujący się w /etc/systemd/system/> . Pliki te definiują sposób działania usługi, w tym zachowanie podczas uruchamiania, limity zasobów i ustawienia zabezpieczeń.

2. Ogranicz uprawnienia do usług

  • Uprawnienia użytkowników i grup : Określ użytkownika i grupę, w ramach której działa usługa. Jeśli to możliwe, unikaj korzystania z konta użytkownika root, aby zminimalizować wpływ naruszeń bezpieczeństwa.

3. Wykorzystaj systemowe funkcje bezpieczeństwa

  • PrywatnyTmp : Włącz prywatny /tmp> I /var/tmp> katalogi usługi, aby zapobiec wyciekom informacji pomiędzy różnymi usługami.
  • ChrońSystem i ChrońDom : Ustaw te opcje, aby ograniczyć dostęp odpowiednio do katalogów systemowych i katalogów domowych użytkowników w celu zwiększenia bezpieczeństwa systemu.
  • ReadOnlyPaths i ReadWritePaths : Określ katalogi, z których usługa może czytać i do których może zapisywać. Ograniczenie dostępu do zapisu może zapobiec niezamierzonym modyfikacjom krytycznych plików.

4. Ogranicz wykorzystanie zasobów

  • Ogranicz procesor i pamięć : Używać CPUQuota> I MemoryLimit> opcje ograniczające wykorzystanie procesora i pamięci przez usługę, zapobiegając atakom związanym z wyczerpaniem zasobów.

5. Włącz kontrolę sieci

  • Ogranicz dostęp do sieci : Spożytkować RestrictAddressFamilies> , IPAddressAllow> , I IPAddressDeny> możliwości kontroli dostępu usługi do sieci, ograniczając jej narażenie na potencjalne zagrożenia.

6. Ustaw uprawnienia systemu plików

  • Uprawnienia systemu plików : Upewnij się, że pliki i katalogi usługi mają odpowiednie uprawnienia ( chmod> ) i własność ( chown> ), aby zapobiec nieupoważnionemu dostępowi.

7. Regularnie aktualizuj i monitoruj

  • Aktualizuj system : Regularnie aktualizuj oprogramowanie systemu i usług, aby łatać luki w zabezpieczeniach i mieć pewność, że stosowane środki bezpieczeństwa pozostaną skuteczne.
  • Monitoruj dzienniki : Monitoruj dzienniki dziennika systemowego ( journalctl> ) pod kątem wszelkich podejrzanych działań lub zdarzeń związanych z bezpieczeństwem i w razie potrzeby podjąć odpowiednie działania.

Wniosek

Omówiliśmy systemctl, który jest niezbędnym narzędziem wiersza poleceń do zarządzania usługami systemowymi w systemie Linux, odgrywającym kluczową rolę w zadaniach takich jak uruchamianie, zatrzymywanie, ponowne uruchamianie, włączanie i wyłączanie usług. W tym artykule zawarto obszerny przewodnik po systemiectl, obejmujący jego składnię i kluczowe polecenia. Od listy dostępnych jednostek systemowych po włączenie lub wyłączenie automatycznego uruchamiania, każde polecenie przyczynia się do efektywnego zarządzania usługami. W artykule omówiono także często zadawane pytania, oferując praktyczne rozwiązania takich zadań, jak sprawdzanie stanu usług, uruchamianie, zatrzymywanie i ponowne uruchamianie usług oraz włączanie lub wyłączanie automatycznego uruchamiania. Ogólnie rzecz biorąc, zrozumienie i opanowanie poleceń systemctl jest niezbędne Administratorzy Linuksa aby zapewnić stabilność i optymalną wydajność swoich systemów.

Systemctl – często zadawane pytania

Co to jest usługa systemu Linux?

Usługa systemu Linux to proces lub aplikacja działająca w tle, działająca niezależnie od interakcji użytkownika, zapewniająca określoną funkcjonalność lub wykonująca zadania systemowe. Jest zarządzany przez system init, zwykle systemd, i można go uruchamiać, zatrzymywać i zarządzać nim za pomocą poleceń takich jak systemctl> .

Jaka jest różnica między Systemctl a usługą?

systemctl> to narzędzie wiersza poleceń służące do zarządzania usługami systemowymi, natomiast service> jest dowiązaniem symbolicznym do systemctl> w wielu systemach, zapewniając zgodność ze starszymi skryptami inicjującymi.

Jak sprawdzić stan usługi w systemie Linux?

Użyj ` systemctl status `> aby sprawdzić, czy usługa jest uruchomiona, aktywna (ostatnio zatrzymana) czy nieaktywna (nigdy nie uruchomiona). Ujawnia to ważne informacje, takie jak wykorzystanie pamięci i aktywne połączenia.

Jak uruchomić, zatrzymać i ponownie uruchomić usługę?

Na początek , używać :

sudo systemctl start 

Postojowy , używać :

sudo systemctl stop 

Zrestartować , używać :

sudo systemctl restart 

Notatka : Pamiętaj o wymianie > z rzeczywistą nazwą usługi.

Jak sprawić, aby usługa uruchamiała się automatycznie podczas rozruchu?

Używać sudo `> systemctl enable `> aby ustawić usługę tak, aby uruchamiała się automatycznie po uruchomieniu systemu.

Aby wyłączyć automatyczne uruchamianie, użyj ` sudo systemctl disable `> .