Podstawy terminala Podstawowy 35 min

Usługi systemowe: systemctl i systemd

Poznasz podstawy pracy z usługami systemowymi w Linuxie: sprawdzanie statusu, uruchamianie, zatrzymywanie, restartowanie oraz włączanie usług przy starcie systemu.

Wróć do listy lekcji

1. Krótka teoria

W systemie Linux wiele programów działa jako usługi systemowe. Usługa może działać w tle i wykonywać określone zadanie, na przykład obsługiwać serwer WWW, połączenia SSH, zadania cykliczne albo aplikację webową. W wielu współczesnych dystrybucjach Linuxa zarządzaniem usługami zajmuje się systemd. Podstawowym narzędziem do pracy z usługami jest komenda systemctl. Dzięki niej można sprawdzić, czy usługa działa, uruchomić ją, zatrzymać, zrestartować, włączyć automatyczne uruchamianie po starcie systemu albo je wyłączyć. Zrozumienie systemctl jest bardzo ważne w administracji systemem, ponieważ większość usług serwerowych jest kontrolowana właśnie w ten sposób.

2. Przykłady komend

systemctl status sshd

Sprawdza aktualny status usługi sshd.

$ systemctl status sshd
● sshd.service - OpenSSH server daemon
   Active: active (running)
systemctl start nginx

Uruchamia wskazaną usługę.

$ systemctl start nginx
systemctl stop nginx

Zatrzymuje wskazaną usługę.

$ systemctl stop nginx
systemctl restart nginx

Restartuje usługę, czyli zatrzymuje ją i uruchamia ponownie.

$ systemctl restart nginx
systemctl reload nginx

Przeładowuje konfigurację usługi bez pełnego restartu, jeśli usługa to obsługuje.

$ systemctl reload nginx
systemctl enable nginx

Włącza automatyczne uruchamianie usługi przy starcie systemu.

$ systemctl enable nginx
systemctl disable nginx

Wyłącza automatyczne uruchamianie usługi przy starcie systemu.

$ systemctl disable nginx
systemctl is-active nginx

Sprawdza, czy usługa jest aktualnie aktywna.

$ systemctl is-active nginx
active
systemctl is-enabled nginx

Sprawdza, czy usługa jest włączona do automatycznego startu.

$ systemctl is-enabled nginx
enabled
systemctl list-units --type=service

Wyświetla listę aktywnych jednostek typu service.

$ systemctl list-units --type=service

3. Zadanie praktyczne

Sprawdź status przykładowej usługi poleceniem systemctl status sshd. Następnie sprawdź, czy jest aktywna przez systemctl is-active sshd oraz czy uruchamia się automatycznie przez systemctl is-enabled sshd. Wyświetl listę aktywnych usług komendą systemctl list-units --type=service. Jeżeli pracujesz w środowisku testowym, możesz przećwiczyć komendy start, stop, restart i reload na usłudze, której zatrzymanie nie przerwie Twojego połączenia z systemem.

4. Typowe błędy

  • Restartowanie usługi bez wcześniejszego sprawdzenia jej statusu.
  • Mylenie restart z reload.
  • Zakładanie, że enable od razu uruchamia usługę.
  • Zakładanie, że start włącza usługę na stałe po restarcie systemu.
  • Zatrzymywanie usługi SSH podczas pracy przez zdalne połączenie bez świadomości skutków.
  • Ignorowanie komunikatów błędów wyświetlanych przez systemctl status.
  • Mylenie aktywności usługi z jej automatycznym uruchamianiem przy starcie systemu.

5. Podsumowanie

systemd odpowiada za zarządzanie wieloma usługami w systemie Linux, a systemctl jest podstawowym narzędziem do ich obsługi. Komenda status pokazuje stan usługi, start ją uruchamia, stop zatrzymuje, restart uruchamia ponownie, a reload przeładowuje konfigurację bez pełnego restartu, jeśli usługa to wspiera. enable i disable decydują o tym, czy usługa ma startować automatycznie razem z systemem.

Flow nauki
  1. Teoria
  2. Przykład
  3. Ćwiczenie
  4. Quiz
  5. Praktyka
  6. Podsumowanie