Uruchom ponownie usługę za pomocą polecenia systemctl restart

Uruchom Ponownie Usluge Za Pomoca Polecenia Systemctl Restart



The systemowy to menedżer usług systemowych szeroko stosowany w systemie Linux. Zarządzać systemowy usługi, systemctl używane jest narzędzie wiersza poleceń. To narzędzie służy również do ponownego uruchamiania dowolnej usługi systemowej.

Usługi w systemie Linux są zarządzane poprzez plik konfiguracyjny. Jeśli w pliku konfiguracyjnym usługi zostaną wprowadzone modyfikacje, konieczne jest zainicjowanie ponownego uruchomienia usługi, aby zastosować modyfikacje. Po ponownym uruchomieniu usługi systemd ponownie ocenia plik konfiguracyjny i stosuje modyfikacje.

W tym przewodniku omówię, jak używać systemctl do ponownego uruchomienia usługi w systemie Linux.







Notatka: Ten przewodnik zawiera polecenia i instrukcje wykonywane w systemie Ubuntu 22.04. Polecenie będzie działać bez żadnych problemów w dystrybucjach dostarczonych z menedżerem usług systemowych.



Polecenie systemctl restart

The uruchom ponownie polecenie zasadniczo zatrzymuje usługę i uruchamia ją ponownie. Jeśli usługa lub jednostka nie działa, polecenie ponownego uruchomienia zainicjuje jej działanie.



Polecenie restartu nie usuwa procesów połączonych z usługą. Weźmy przykład deskryptorów plików, które są nieujemnymi identyfikatorami przypisywanymi przez system operacyjny plikom otwieranym przez usługę. Jeśli ponownie uruchomisz usługę, deskryptor pliku powiązany z tą usługą pozostanie tam podczas procesu ponownego uruchamiania.





Jeśli chcesz opróżnić wszystkie połączone procesy z usługą, musisz to zrobić jawnie zatrzymywać się obsługa i początek to znowu.

Jak ponownie uruchomić usługę

W systemie Linux możesz ponownie uruchomić usługę za pomocą polecenia sudo systemctl narzędzie wiersza poleceń z rozszerzeniem uruchom ponownie opcję i podanie jej nazwy. Ogólna składnia jest podana poniżej:



sudo ponowne uruchomienie systemuctl [ Nazwa serwisu ]

Będziesz potrzebować sudo uprawnienia do ponownego uruchomienia usługi.

Na przykład zrestartujmy ssh praca.

sudo systemctl uruchom ponownie ssh.service

Aby ponownie uruchomić wiele usług, dołącz nazwę każdej usługi po uruchom ponownie polecenie ze spacją.

sudo systemctl uruchom ponownie ssh.service smbd.service

Inne polecenia ponownego uruchomienia podano w poniższej tabeli:

spróbuj ponownie uruchomić Zatrzymuje lub uruchamia określoną usługę lub usługi, a jeśli usługa nie jest uruchomiona, nie uruchamia jej
załaduj ponownie lub uruchom ponownie Załaduj ponownie obsługiwaną usługę lub usługi, a jeśli usługa nie jest obsługiwana, uruchom ją ponownie i aktywuj
spróbuj załadować ponownie lub spróbować uruchomić ponownie Załaduj ponownie obsługiwaną usługę lub usługi, a jeśli usługa nie jest obsługiwana, uruchom ją ponownie bez aktywowania

W powyższych poleceniach .praca przedłużenie jest opcjonalne.

Jak automatycznie ponownie uruchomić usługę

W systemie Linux, jeśli usługa ulegnie awarii, plik systemowy domyślnie uruchomiłem go ponownie. Niemniej jednak w wielu przypadkach może zaistnieć konieczność modyfikacji sposobu ponownego uruchamiania usługi. Na przykład może być konieczne ręczne działanie podczas procesu debugowania usługi wykonanej na zamówienie.

Pliki jednostek systemowych lub pliki usług znajdują się na /etc/systemd/system Lub /lib/systemd/system głównie w zależności od tego, jak usługa jest tworzona. Aby wyświetlić listę plików jednostek w systemie Linux, użyj następującego polecenia:

ls / biblioteka / systemowy / system

Możesz zobaczyć pliki konfiguracyjne różnych usług. Otwórzmy usługa ssh plik za pomocą nano redaktor.

sudo nano / biblioteka / systemowy / system / usługa ssh

Tutaj możesz modyfikować Uruchom ponownie ustawienie. Domyślnie jest ustawiony na w przypadku awarii . Inne opcje ponownego uruchomienia usługi są wymienione poniżej:

  • NIE
  • zawsze
  • na sukces
  • w przypadku awarii
  • on-nienormalny
  • w trakcie przerwania
  • na straży

Inną opcją w pliku usług jednostki jest Uruchom ponownie sek który służy do określenia liczby sekund, po których usługa zostanie ponownie uruchomiona.

[ Praca ]

Uruchom ponownie =zawsze

Uruchom ponownie sek = 5

Instrukcje te oznaczają, że usługa zostanie uruchomiona ponownie po uruchomieniu systemu, a w przypadku przerwania zostanie uruchomiona ponownie po 5 sekundach.

Po zmodyfikowaniu ustawienia wykonaj następujące polecenie, aby zastosować zmiany.

sudo systemctl reload-daemon

Inne ważne ustawienia, które należy wziąć pod uwagę, to StartLimitPrzedziałSek I StartLimitSeria . Opcje te są przydatne do ustawienia maksymalnego czasu i maksymalnej liczby ponownych prób ponownego uruchomienia usługi.

[ Jednostka ]

StartLimitPrzedziałSek = 300

StartLimitSeria = 4

Powyższa instrukcja wskazuje, że systemd automatycznie przestanie próbować ponownie uruchomić usługę, jeśli nie uruchomi się ona po 300 sekundach i 4 ponownych próbach.

Aby sprawdzić, czy usługa uruchomi się ponownie po 5 sekundach, czy nie, zabij usługę, używając PID usługi i zabić Komenda.

sudo zabić -9 [ PID ]

Po 5 sekundach usługa zostanie uruchomiona ponownie; Użyj dziennikctl polecenie sprawdzenia stanu pliku usługa ssh .

dziennikctl -W usługa ssh

Jak ponownie uruchomić usługę po ponownym uruchomieniu usługi zależnej

W systemie Linux wiele usług jest współzależnych i podobnie należy je ponownie uruchomić po ponownym uruchomieniu usługi zależnej.

W pliku usług jednostkowych dostępne są trzy różne opcje ponownego uruchomienia usługi wraz z ponownym uruchomieniem usługi zależnej.

  • Część
  • Łączy z
  • Wymaga

Wszystkie te opcje wykonują to samo zadanie.

Weźmy przykład ssh.service, który zależy od apparmor.service; moduł bezpieczeństwa systemu Linux zapewniający niezbędny dostęp. Aby wyświetlić listę zależności usługi w systemie Linux, użyj systemctl z zależności listowe nazwa polecenia i usługi.

systemctl lista zależności ssh.service

Jeśli więc chcesz ponownie uruchomić usługę ssh.service po ponownym uruchomieniu apparmor.service, musisz dołączyć opcję PartOf, BindsTo lub Requires wraz z nazwą usługi w sekcji [Unit] pliku apparmor.service.

Otwórz plik apparmor.service.

sudo nano / biblioteka / systemowy / system / apparmor.service

Dodaj następujący wiersz w sekcji [Unit].

Część =ssh.usługa

Zapisz plik i wykonaj polecenie demon-reload.

sudo przeładowanie demona systemctl

Teraz uruchom ponownie usługa ssh a następnie sprawdź apparmor.service dziennik.

Zauważysz apparmor.service uruchomiony ponownie w tym samym czasie usługa ssh uruchomiony ponownie.

Wniosek

Aby ponownie uruchomić usługę lub usługi w systemie Linux, plik systemctl polecenie jest używane z uruchom ponownie opcja. The systemctl to narzędzie wiersza poleceń służące do zarządzania usługami systemowymi. The uruchom ponownie opcja uruchamia usługę, a następnie ją zatrzymuje, aktywując nieaktywną usługę. Można jednak ponownie uruchomić usługę bez jej aktywowania, korzystając z opcji spróbuj ponownie uruchomić opcja.