Linux z systemd: odczytaj stan usługi i dziennik do diagnozy

Usługa nie startuje lub funkcja zawodzi? Stan i logi z właściwego czasu pomagają, zanim restart zmieni ślady. Poradnik dotyczy systemd. example.service oznacza rzeczywistą badaną usługę.

Krok po kroku

  1. Zapisz czas, strefę czasową i niedziałającą funkcję. Ustal dokładną nazwę jednostki z dokumentacji lub systemctl list-units --type=service --all. Nazwy zależą od dystrybucji.
  2. Odczytaj systemctl status example.service --no-pager --full. Odróżnij Loaded, Active i konkretne błędy. ‘enabled’ opisuje włączenie przy starcie, nie potwierdza obecnie poprawnego działania.
  3. Odczytaj journalctl -u example.service -b -n 100 --no-pager. Wynik obejmuje bieżący rozruch i ostatnie 100 pasujących wpisów. Przy starszym incydencie ograniczenie może wykluczyć potrzebne wiadomości.
  4. W razie potrzeby użyj journalctl -u example.service --since '2026-09-16 12:00:00' --until '2026-09-16 12:30:00' --no-pager, zastępując oba czasy. Sprawdź strefę systemu. Przeczytaj też wpisy bezpośrednio poprzedzające błąd.
  5. Dla usługi użytkownika użyj systemctl --user status example.service i journalctl --user -u example.service na właściwym koncie. Brak wpisów może oznaczać także brak praw odczytu, inne pliki logów lub upływ retencji.

Sprawdzenie wyniku

Zapisz pierwszy konkretny błąd, czas i stan usługi. Oddzielnie sprawdź właściwą funkcję: ‘active’ nie dowodzi udanego logowania, żądania czy przetwarzania. Wyznacz kolejny celowany test zamiast przypadkowych restartów.

Cofnięcie i ograniczenia

Polecenia tylko odczytują i nie zmieniają usługi. Przed restartem, zmianą konfiguracji lub reset-failed ustal skutki i drogę powrotu. Logi mogą zawierać poufne dane; udostępniaj tylko potrzebne, oczyszczone fragmenty.

Źródło