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 lekcji1. 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
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
restartzreload. -
Zakładanie, że
enableod razu uruchamia usługę. -
Zakładanie, że
startwłą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.