- 1 1. Wprowadzenie
- 2 2. Jak wyświetlić usługi za pomocą systemctl
- 3 3. Podstawowe zarządzanie usługami za pomocą systemctl
- 4 4. Użyteczne opcje i zaawansowane techniki dla systemctl
- 5 5. Częste problemy i rozwiązania
- 6 6. Podsumowanie
- 7 7. Najczęściej Zadawane Pytania (FAQ)
- 7.1 P1. Jaka jest różnica między poleceniami systemctl a service?
- 7.2 P2. Jaka jest różnica między list-units a list-unit-files?
- 7.3 P3. Czy mogę uruchomić usługę w stanie „static”?
- 7.4 P4. Nie mogę uruchomić zamaskowanej usługi. Co zrobić?
- 7.5 P5. Czy istnieje interfejs graficzny do wyświetlania statusu usług?
- 7.6 P6. Gdzie powinienem umieścić własne pliki jednostek?
1. Wprowadzenie
Podczas pracy w systemie Linux istnieje wiele sytuacji, w których możesz chcieć sprawdzić status usług lub wyświetlić wszystkie uruchomione procesy. W takich przypadkach polecenie systemctl jest niezwykle przydatne.
To polecenie współpracuje z „systemd”, systemem inicjalizacji i menedżerem usług w Linuksie, oferując szeroki zakres funkcji, takich jak sprawdzanie statusu usługi (jednostki), uruchamianie, zatrzymywanie, ponowne uruchamianie oraz wyświetlanie listy usług.
Szczególnie przy „wyświetlaniu z systemctl” możesz zrozumieć strukturę swojego systemu z różnych perspektyw – nie tylko aktualnie aktywne usługi, ale także nieaktywne, czy usługi skonfigurowane do automatycznego uruchamiania.
Ten rozdział krótko nakreśli podstawy tego, czym jest „systemctl”, oraz wyjaśni, czego dowiesz się w tym artykule.
Co to jest systemctl?
systemctl jest standardowym narzędziem do kontrolowania i sprawdzania różnych „jednostek”, takich jak usługi, cele i punkty montowania w dystrybucjach Linuksa opartych na systemd.
Na przykład używasz go do uruchamiania lub zatrzymywania usług takich jak Apache (httpd) czy SSH, albo do wyświetlania statusu tych usług.
Związek między systemd a systemctl
systemd jest rdzeniowym systemem odpowiedzialnym za procesy rozruchu i zarządzanie usługami w Linuksie, zastępując starsze narzędzia, takie jak SysVinit i Upstart. systemctl jest narzędziem wiersza poleceń, które bezpośrednio komunikuje się z systemd.
Innymi słowy, jeśli systemd jest „kontrolerem”, to systemctl pełni rolę „operatora”, który wysyła instrukcje.
Czego dowiesz się w tym artykule
Ten artykuł odpowiada na następujące typowe pytania:
- Jak mogę wyświetlić wszystkie aktualnie uruchomione usługi?
- Jak włączyć do listy usługi nieaktywne?
- Jak sprawdzić, które usługi są włączone do automatycznego uruchamiania?
- Jak odczytać i zinterpretować wyniki?
Każdy przykład polecenia i jego wynik są dokładnie wyjaśnione dla początkujących, więc śmiało podążaj za nami aż do końca.
2. Jak wyświetlić usługi za pomocą systemctl
W administracji systemem Linux szybkie zrozumienie listy usług jest kluczowe. Dzięki poleeniu systemctl możesz łatwo zobaczyć nie tylko aktualnie aktywne usługi, ale także nieaktywne oraz te skonfigurowane do automatycznego uruchamiania.
Poniżej wyjaśniamy trzy główne perspektywy wyświetlania usług:
- Lista aktywnych usług
- Lista wszystkich usług (w tym nieaktywnych)
- Lista plików jednostek usług (z ustawieniami uruchamiania)
2.1 Wyświetlanie aktualnie aktywnych usług
Aby sprawdzić, które usługi „działają” w Twoim systemie, użyj tego podstawowego polecenia:
systemctl list-units --type=service
To polecenie wyświetla listę aktualnie aktywnych (działających) usług. Wynik zawiera następujące kolumny:
| Column | Description |
|---|---|
| UNIT | Name of the service (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service status (e.g., active, inactive, failed) |
| SUB | Detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Brief description of the service |
Ta informacja pomaga zrozumieć, na przykład, czy nginx jest aktualnie uruchomiony lub które usługi są aktywne.
2.2 Wyświetlanie wszystkich usług, w tym nieaktywnych
Domyślnie list-units pokazuje tylko aktualnie aktywne usługi. Aby uwzględnić usługi nieaktywne, dodaj opcję --all:
systemctl list-units --type=service --all
Ta opcja pozwala zobaczyć usługi w stanie „inactive” lub te, które nigdy wcześniej nie były uruchamiane.
Jeśli chcesz jeszcze bardziej zawęzić wyniki, użyj opcji --state= do filtrowania według konkretnego statusu:
systemctl list-units --type=service --state=inactive
Jest to przydatne, gdy chcesz sprawdzić wyłącznie usługi zatrzymane, na przykład.
2.3 Wyświetlanie plików jednostek usług
Jeśli chcesz poznać nie tylko bieżący status, ale także które usługi są włączone i skonfigurowane do automatycznego uruchamiania, użyj następującego polecenia:
systemctl list-unit-files --type=service
To wyświetla listę plików jednostek usług (plików konfiguracyjnych) i pozwala sprawdzić ich status włączenia/wyłączenia (enabled, disabled, itp.).
| STATE Value | Description |
|---|---|
| enabled | Automatically enabled at boot |
| disabled | Not enabled at boot; must be started manually |
| static | Started as a dependency of other units; cannot be enabled/disabled directly |
| masked | Explicitly disabled and cannot be started (protected) |
Przegląd tej listy pomaga wizualnie zrozumieć, które usługi startują przy rozruchu i czy któreś zostały przypadkowo zamaskowane.
3. Podstawowe zarządzanie usługami za pomocą systemctl
Polecenie systemctl nie tylko sprawdza status usługi, ale także pozwala na uruchamianie, zatrzymywanie, ponowne uruchamianie oraz włączanie lub wyłączanie usług. Oto podstawowe operacje często używane w zarządzaniu systemem Linux.
Opanowanie tych poleceń jest niezbędne do codziennego zarządzania serwerem i rozwiązywania problemów.
3.1 Uruchamianie usługi
Aby uruchomić konkretną usługę ręcznie, użyj podpolecenia start:
sudo systemctl start [service name]
Na przykład, aby uruchomić Apache (httpd):
sudo systemctl start httpd.service
To uruchamia usługę natychmiast. Jeśli chcesz, aby przetrwała po ponownym uruchomieniu, użyj również enable (wyjaśnione poniżej).
3.2 Zatrzymywanie usługi
Aby zatrzymać usługę, użyj tego polecenia:
sudo systemctl stop [service name]
Przykład:
sudo systemctl stop sshd.service
Usługa pozostaje zatrzymana, dopóki nie uruchomisz jej ponownie explicite.
3.3 Ponowne uruchamianie usługi
Aby ponownie uruchomić usługę (na przykład po zmianach konfiguracji), użyj:
sudo systemctl restart [service name]
Przykład:
sudo systemctl restart nginx.service
Ponowne uruchomienie zawsze zatrzymuje, a następnie uruchamia usługę, niezależnie od jej aktualnego stanu.
3.4 Sprawdzanie statusu usługi
Aby sprawdzić szczegółowy status usługi, użyj podpolecenia status:
systemctl status [service name]
Przykład:
systemctl status mysql.service
To pokazuje aktualny stan aktywny, identyfikator procesu (PID), podsumowanie logów i więcej — bardzo pomocne przy rozwiązywaniu problemów.
3.5 Włączanie usługi do automatycznego uruchamiania
Aby zapewnić, że usługa uruchamia się automatycznie podczas rozruchu, użyj podpolecenia enable:
sudo systemctl enable [service name]
Przykład:
sudo systemctl enable docker.service
Teraz usługa uruchomi się automatycznie przy następnym rozruchu systemu.
3.6 Wyłączanie usługi z automatycznego uruchamiania
Aby wyłączyć automatyczne uruchamianie, użyj polecenia disable:
sudo systemctl disable [service name]
Przykład:
sudo systemctl disable cups.service
To uniemożliwia uruchomienie usługi podczas rozruchu.
3.7 Sprawdzanie, czy usługa jest włączona
Aby sprawdzić, czy usługa jest włączona (uruchamia się automatycznie), użyj is-enabled:
systemctl is-enabled [service name]
Przykładowe wyjście:
enabled
To szybko informuje o polityce uruchamiania usługi.
4. Użyteczne opcje i zaawansowane techniki dla systemctl
Polecenie systemctl obsługuje nie tylko podstawowe operacje uruchamiania/zatrzymywania, ale także zaawansowane zadania zarządzania. Oto kilka wygodnych opcji i technik, które powinieneś znać.
Wykorzystanie tych funkcji może znacznie poprawić efektywność zarządzania usługami w systemie Linux.
4.1 Wyświetlanie zależności usług
W systemie Linux niektóre usługi zależą od innych jednostek (usług, montowań, celów itp.). Aby sprawdzić zależności, użyj list-dependencies:
systemctl list-dependencies [service name]
Przykład:
systemctl list-dependencies nginx.service
To polecenie pokazuje powiązane jednostki w formacie drzewa — pomocne do analizy kolejności uruchamiania i pośrednich zależności.
4.2 Wyświetlanie zawartości pliku jednostki
Jeśli chcesz sprawdzić szczegóły konfiguracji jednostki, możesz wyświetlić faktyczny plik jednostki:
systemctl cat [service name]
Przykład:
systemctl cat ssh.service
To pokazuje ścieżkę pliku i jego zawartość, umożliwiając szybkie obejrzenie niestandardowych ustawień.

4.3 Przeładowywanie plików jednostek
Jeśli ręcznie zmodyfikujesz plik jednostki, użyj daemon-reload, aby zastosować zmiany:
sudo systemctl daemon-reexec
Lub, częściej:
sudo systemctl daemon-reload
To przeładowuje pliki jednostek w systemd, dzięki czemu zmiany wejdą w życie. Jeśli ustawienia nie wydają się być stosowane, spróbuj najpierw tego polecenia.
4.4 Sprawdzanie logów usługi (suplement)
Chociaż nie jest to polecenie systemctl, journalctl jest przydatne do sprawdzania logów usługi:
journalctl -u [service name]
Przykład:
journalctl -u docker.service
To pozwala na przeglądanie błędów uruchamiania i historii ponownych uruchomień — niezbędny krok w rozwiązywaniu problemów.
5. Częste problemy i rozwiązania
Kiedy zarządzasz usługami za pomocą systemctl, nie zawsze wszystko przebiega zgodnie z planem. Ten rozdział wyjaśnia typowe problemy i sposoby ich rozwiązania.
Przygotuj się na sytuacje typu „usługa nie uruchamia się” lub „nie mogę znaleźć przyczyny”, znając te podstawowe kroki diagnostyczne.
5.1 Rozwiązywanie problemów, gdy usługa nie uruchamia się
Możesz napotkać błędy takie jak:
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
Aby zidentyfikować przyczynę, sprawdź następujące kroki w podanej kolejności:
- Sprawdź status
systemctl status [service name]
- Sprawdź dzienniki błędów
journalctl -xe
- Przeładuj pliki jednostek – jeśli właśnie edytowałeś plik jednostki, przeładuj go poleceniem:
sudo systemctl daemon-reload
- Sprawdź konflikty portów – zobacz, czy inny proces już używa tego portu:
sudo netstat -tulnp | grep [port number]
5.2 Jak czytać komunikaty o błędach w poleceniu status
Gdy uruchamiasz systemctl status, widzisz stan usługi oraz najnowsze komunikaty dziennika. Na przykład:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Fri 2025-04-18 12:00:00 JST; 5s ago
Process: 12345 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Umożliwia to szybkie wykrycie niepowodzeń (np. „Active: failed”, „status=1/FAILURE”) oraz określenie, który proces zwrócił błąd.
Wiersz Loaded pokazuje ścieżkę do pliku jednostki, co ułatwia zidentyfikowanie pliku konfiguracyjnego do edycji.
5.3 Gdy usługi przerywają działanie nieoczekiwanie
Jeśli usługa uruchamia się, a potem natychmiast się zatrzymuje, typowe przycz to:
- Błędy w plikach konfiguracyjnych
- Konflikty portów
- Brak wymaganych plików lub katalogów
- Niewystarczające uprawnienia do wykonania
Aby rozwiązać problem, spróbuj wykonać następujące czynności:
- Sprawdź i zweryfikuj pliki konfiguracyjne (np.
nginx -tlubapachectl configtest) - Śledź szczegółowe dzienniki za pomocą
journalctl -u [service name] - Upewnij się, że wymagane katalogi (np.
/var/run/xxx) istnieją; w razie potrzeby je utwórz
5.4 Nie można uruchomić usług w stanie masked
Jeśli zobaczysz taki błąd:
Failed to start example.service: Unit example.service is masked.
Usługa znajduje się w stanie masked (całkowicie wyłączona i zablokowana przed uruchomieniem). Odmaskuj ją poleceniem:
sudo systemctl unmask [service name]
Po tym możesz uruchomić usługę jak zwykle.
6. Podsumowanie
Zarządzanie usługami w Linuksie jest nieodłączną częścią codziennej administracji systemem. Polecenie systemctl odgrywa kluczową rolę, umożliwiając przeglądanie list usług i ich efektywne zarządzanie.
W tym artykule omówiono następujące zagadnienia przy użyciu słowa kluczowego „systemctl list”:
Co możesz zrobić za pomocą polecenia systemctl (przegląd)
- Sprawdź listę usług
- Wyświetl aktualnie aktywne usługi (
list-units --type=service) - Wyświetl wszystkie usługi, w tym nieaktywne (
--alllub opcje--state=) - Pokaż pliki jednostek usług i ich status uruchamiania (
list-unit-files) - Podstawowe operacje na usługach
- Uruchamianie, zatrzymywanie, restartowanie i sprawdzanie statusu (start / stop / restart / status)
- Włączanie/wyłączanie automatycznego uruchamiania (enable / disable / is-enabled)
- Zaawansowane operacje i rozwiązywanie problemów
- Sprawdzanie zależności, przeglądanie plików jednostek, przeładowywanie konfiguracji
- Badanie błędów przy użyciu dzienników i sprawdzania statusu
Najlepsze praktyki zarządzania usługami
- Zawsze sprawdzaj status przed wprowadzaniem zmian (polecenie
status) - Znaj swoją sytuację auto‑startu (
is-enabled) - Po wprowadzeniu zmian zawsze uruchom
daemon-reload - W razie problemów sprawdzaj dzienniki za
journalctl
Skrupulatne kontrole tego typu zapewniają stabilne działanie usług i szybsze rozwiązywanie problemów w administracji systemem Linux.
Dalsza nauka
Jeśli chcesz pogłębić wiedzę, rozważ zgłębienie tematów takich jak:
- cele systemd (i różnice w stosunku do poziomów uruchamiania)
- Zaplanowane zadania przy użyciu
systemd-timer - Jak tworzyć i zarządzać własnymi plikami jednostek
7. Najczęściej Zadawane Pytania (FAQ)
Ten rozdział podsumowuje najczęściej zadawane pytania i odpowiedzi dotyczące polecenia systemctl oraz listowania usług. Nawet jeśli znasz podstawy, przejrzyj je dla szybkiego odniesienia.
P1. Jaka jest różnica między poleceniami systemctl a service?
O1.
systemctl jest poleceniem zarządzania usługami opartym na systemd i jest standardem w większości nowoczesnych dystrybucji Linuksa (Ubuntu, CentOS, Fedora itp.).
Natomiast service pochodzi ze starszego systemu SysVinit. Choć czasami jest zachowywane ze względów kompatybilności, zaleca się używanie systemctl w środowiskach systemd.
P2. Jaka jest różnica między list-units a list-unit-files?
O2.
list-unitswyświetla obecnie załadowane jednostki (aktywne lub wcześniej używane).list-unit-fileswymienia wszystkie pliki jednostek oraz ich status włączenia/wyłączenia. To jak różnica między „co jest uruchomione teraz” a „co jest skonfigurowane do uruchomienia”.
P3. Czy mogę uruchomić usługę w stanie „static”?
O3.
Tak, możesz ręcznie start usługę w stanie static, ale nie możesz jej „, aby uruchamiała się automatycznie. Dzieje się tak, ponieważ usługi statyczne są przeznaczone do uruchamiania jako zależności innych jednostek.
P4. Nie mogę uruchomić zamaskowanej usługi. Co zrobić?
O4.
masked oznacza „całkowicie wyłączone”. Odmaskuj za pomocą:
sudo systemctl unmask [service name]
Po tym możesz uruchomić ją normalnie.
P5. Czy istnieje interfejs graficzny do wyświetlania statusu usług?
O5.
W zależności od dystrybucji, narzędzia takie jak gnome-system-monitor, KSysGuard lub Cockpit mogą pozwolić sprawdzić status usług w GUI. Jednak dla zaawansowanych operacji systemctl pozostaje najpewniejszą metodą.
P6. Gdzie powinienem umieścić własne pliki jednostek?
O6.
Zazwyczaj umieszcza się je w /etc/systemd/system/. Po edycji nie zapomnij wykonać:
sudo systemctl daemon-reload
Następnie zarządzaj jak zwykle przy pomocy start lub enable.


