Jak wyświetlić usługi systemu Linux za pomocą polecenia systemctl
Zarządzanie usługami w systemie Linux może być nieco dziwne, jeśli jesteś początkujący, zwłaszcza że wiele zależy od uruchomienia, zatrzymania lub po prostu sprawdzenia. Czasami usługi działają nieprawidłowo lub nie zachowują się zgodnie z oczekiwaniami, więc umiejętność ich wyświetlania i kontrolowania za pomocą systemctl to Twój najlepszy przyjaciel. Ten przewodnik omawia podstawowe polecenia i triki, które zapewnią płynne działanie systemu Linux, a także zawiera praktyczne wskazówki, które nie są zwykłym kopiowaniem i wklejaniem, ale wynikają z doświadczenia, które pozwoliło na poznanie ich specyfiki.
Jak zarządzać usługami i rozwiązywać problemy za pomocą systemctl
Wyświetl listę wszystkich usług, aby zobaczyć, które z nich działają, a które nie
Jeśli próbujesz dowiedzieć się, jakie usługi są załadowane w Twoim systemie — być może coś nie działa prawidłowo — pierwszym krokiem jest wylistowanie wszystkiego. Uruchom to w terminalu:
sudo systemctl list-units --type=service
To polecenie wyświetli tabelę ze wszystkimi usługami z kolumnami takimi jak UNIT, LOAD, ACTIVE, SUB i DESCRIPTION. W niektórych konfiguracjach tabela może wydawać się nieco przytłaczająca — ponieważ Linux uwielbia rozwlekłość. Kolumna UNIT zawiera nazwę pliku, np ssh.service., a stan ACTIVE informuje, czy usługa jest uruchomiona. Aby wyświetlić wszystkie usługi, w tym nieaktywne lub uszkodzone, dodaj --all:
sudo systemctl list-units --type=service --all
Jest to szczególnie przydatne, gdy próbujesz namierzyć usługę, która Twoim zdaniem nie działa lub nie jest włączona podczas uruchamiania. Oczywiście w Linuksie jest to bardziej skomplikowane niż zwykłe naciśnięcie przełącznika, ale znajomość tych poleceń pozwala zajrzeć za kulisy.
Sprawdź, które usługi są aktywne, a które nieaktywne
Jeśli podejrzewasz, że konkretna usługa nie działa lub nie uruchamia się prawidłowo, spróbuj zawęzić zakres problemu:
sudo systemctl list-units --type=service --state=active
Ten filtr wyświetla tylko aktywne (uruchomione) usługi. I odwrotnie, jeśli chcesz zobaczyć, które usługi są zatrzymane, uruchom:
sudo systemctl list-units --type=service --state=inactive
Przydatne do identyfikacji usług, które mogą wymagać ręcznego ponownego uruchomienia lub nie uruchamiają się po uruchomieniu. A skoro już o tym mowa, jeśli usługa wydaje się nieaktywna, a powinna działać, może być konieczne jej ręczne uruchomienie.
Znajdź niedziałające usługi — ponieważ czasami po prostu przestają działać
Jeśli usługa nie działa i widzisz ją na liście, ale w stanie awarii, sprawdź to:
sudo systemctl list-units --type=service --state=failed
Pokazuje wszystkie usługi, których uruchomienie nie powiodło się lub które uległy awarii. To dobry pierwszy krok przy rozwiązywaniu nietypowych problemów – ponieważ bez względu na to, ile razy uruchomisz coś ponownie bezmyślnie, ta informacja pokaże, czy usługa jest rzeczywiście uszkodzona.
Zobacz, które usługi mają zostać uruchomione podczas rozruchu
Wiedza o tym, co jest włączone podczas uruchamiania, może zaoszczędzić Ci mnóstwa problemów później. Uruchom:
sudo systemctl list-unit-files --type=service --state=enabled
Ta tabela daje szybki przegląd tego, co jest ustawione do uruchomienia podczas rozruchu systemu, co może być przydatne, jeśli usługa nie uruchamia się, ponieważ jest wyłączona lub zamaskowana. Aby zobaczyć wyłączone usługi, wystarczy zamienić enabledna disabled.
Uzyskaj szczegóły dotyczące konkretnej usługi
Chcesz zobaczyć, co dzieje się z konkretną usługą? Może ma awarię, a może po prostu chcesz poznać jej status, logi, zużycie pamięci itp. Uruchom:
sudo systemctl status <service-name>
Zastąp je <service-name>takimi elementami jak nginx.servicelub cups.service. Wynik pokazuje aktualny stan, ostatnie logi i informacje o procesorze/pamięci – coś w rodzaju kontroli stanu. W niektórych dystrybucjach może się to okazać bardziej przydatne journalctl -u <service-name>do szczegółowych logów.
Uruchamianie, zatrzymywanie, ponowne uruchamianie i ponowne ładowanie usług — spraw, aby zmiany były trwałe
Uruchom usługę
Gdy potrzebujesz uruchomić usługę, na przykład po jej skonfigurowaniu, uruchom:
sudo systemctl start <service-name>
To uruchamia usługę bezproblemowo. Sprawdź, czy działa z status.
Zatrzymaj usługę
Aby zatrzymać nieprawidłowo działającą lub niepotrzebną usługę, uruchom:
sudo systemctl stop <service-name>
Uruchom ponownie lub przeładuj (aby wprowadzić zmiany bez przerywania)
Jeśli edytowałeś pliki konfiguracyjne i chcesz zastosować zmiany, zazwyczaj wystarczy ponowne uruchomienie, ale niektóre usługi obsługują szybkie ponowne ładowanie. Aby ponownie uruchomić:
sudo systemctl restart <service-name>
Lub, jeśli jest to obsługiwane, po prostu przeładuj konfigurację:
sudo systemctl reload <service-name>
Uwaga: Nie wszystkie usługi obsługują funkcję przeładowania; najpierw sprawdź dokumentację. Zazwyczaj jest to bezpieczniejsze, jeśli wprowadzasz tylko drobne zmiany, takie jak zmiana parametru konfiguracji.
Włączanie i wyłączanie usług podczas rozruchu
Chcesz, aby usługa uruchamiała się automatycznie po uruchomieniu systemu? Włącz ją:
sudo systemctl enable <service-name>
A jeśli nie chcesz, aby system się uruchamiał, wyłącz go:
sudo systemctl disable <service-name>
Jeśli chcesz wykonać obie czynności naraz — włączyć i uruchomić natychmiast — po prostu dodaj --now:
sudo systemctl enable --now <service-name>
Usługi zakładania i zdejmowania maseczek — zablokuj je lub ponownie udostępnij
Maskowanie uniemożliwia uruchomienie usługi w jakikolwiek sposób. Jeśli chcesz ją zablokować:
sudo systemctl mask <service-name>
Łączy to usługę z /dev/null, uniemożliwiając jej uruchomienie ręczne lub automatyczne. Przydatne, jeśli masz usługę, której po prostu nie chcesz uruchamiać. Aby ją odblokować, po prostu usuń maskę:
sudo systemctl unmask <service-name>
Wskazówka — Czasami usługa po prostu odmawia uruchomienia lub zostaje zablokowana w trybie maskowania — uruchom ją ponownie, opróżnij pamięć podręczną, a nawet zrestartuj po maskowaniu/odmaskowaniu, jeśli sytuacja się pogorszy. Zdarza się to częściej, niż myślisz, zwłaszcza w przypadku uporczywych usług lub niestandardowych skryptów.
Podsumowanie
Opanowanie systemctl to prawdziwy przełom w Linuksie. Nie zawsze działa idealnie, a niektóre polecenia działają inaczej w zależności od dystrybucji lub wersji, ale te podstawy sprawdzają się w większości sytuacji – niezależnie od tego, czy rozwiązujesz problemy, dostosowujesz program, czy po prostu próbujesz sprawić, by usługa działała prawidłowo. Spodziewaj się trochę prób i błędów, zwłaszcza w przypadku usług maskowanych, ale gdy już to opanujesz, sterowanie systemem stanie się o wiele łatwiejsze.
Streszczenie
- Użyj,
systemctl list-units --type=serviceaby zobaczyć swoje usługi - Sprawdź status za pomocą
systemctl status <service> - Start/zatrzymanie za pomocą
systemctl start/stop <service> - Włącz lub wyłącz podczas rozruchu za pomocą
systemctl enable/disable <service> - Usługi noszenia maseczek lub ich zdejmowania, jeśli są uparte
Mam nadzieję, że to komuś oszczędzi bólu głowy. Zarządzanie usługami w Linuksie nie zawsze jest łatwe, ale dzięki tym poleceniom jesteś o krok do przodu. Trzymam kciuki, że to pomoże — działało na wielu konfiguracjach, więc może zadziała tak samo u Ciebie.
Powiązane artykuły
Czy ten artykuł był pomocny?