Terminal pogryzł człowieka: systemd

Choć starych drzew się nie przesadza i wbrew zasadzie „po co zmieniać sysvinit skoro działa”, otwarty świat poszedł na współpracę z demonizowanym systemd. Zwykłym użytkownikom nie pozostał nic innego, jak dostosować się do zmian w krajobrazie i odnaleźć się w zmodernizowanej nomenklaturze zawiadywania usługami linuksowymi i nie tylko. A jest to proces nieuchronny, gdyż 98% nowych dystrybucji korzysta już ze wspomnianego systemd. Nawet nadchodzące Ubuntu 16.04 LTS.

Czynniki pierwsze systemd
Systemd jest stosunkowo nowym systemem (Fedora 15 jako pierwsza dystrybucja wymieniła upstart na systemd) inicjalizacji i obsługi komponentów systemowych. Wymyślony jako następca sysvinit jest jednak z nim kompatybilny (i z jego skryptami), a sam w miejsce dawnych skryptów bashowych oferuje pliki .service opisujące warunki uruchamiania usług. Najistotniejsze cechy całości to:

  • możliwość równoległego uruchamiania usług,
  • uruchamianie zadań za pomocą socketów D-Bus,
  • uruchamianie usług na żądanie,
  • śledzenie działania procesów przy pomocy grup kontrolnych (cgroups),
  • wsparcie dla zachowywania i przywracania stanu usług w systemie,
  • utrzymanie punktów montowania i automatycznego montowania w systemie,
  • oparta na zależnościach logika kontroli usług,
  • działa jako zamiennik SysVinit.

Do kontrolowania zadań służy narzędzie systemctl i to na nim skupimy się dzisiaj. Jak bowiem na język systemd przełożyć większość poleceń którymi posługiwaliśmy się do tej pory, aby obsłużyć usługi i komponenty systemowe? Nieodzowna można stać się skrócona ściąga:

zadaniesysvinitsystemd
zadaniesysvinitsystemd
Uruchom usługęservice example startsystemctl start example
Zatrzymaj usługęservice example stopsystemctl stop example
Zrestartuj usługę (Stop - Start)service example restartsystemctl restart example
Przeładuj konfigurację usługiservice example reloadsystemctl reload example
Status usługiservice example statussystemctl status example
Zrestartuj usługę jeżeli działaservice example condrestartsystemctl condrestart example
Pozwól na start usługi przy uruchamianiu systemuchkconfig example onsystemctl enable example
Zabroń startu usługi podczas uruchamiania systemuchkconfig example offsystemctl disable example
Sprawdź czy usługa jest uruchamiana wraz ze startem systemuchkconfig examplesystemctl is-enabled example
Lista usług uruchamianych bądź nie wraz ze startem systemu chkconfig --listsystemctl list-unit-files --type=service
Informacje o konkretnej usłudzechkconfig example --list systemctl show example
Dodaj i skonfiguruj usługęchkconfig example --addsystemctl edit --full example

To większość podstawowych operacji które zwykle przeprowadzamy manipulując usługami systemowymi. Nie wyczerpuje to możliwości systemd / systemctl i jeżeli ktoś chce doskonalić swe umiejętności dalej, powinien zapoznać się z pełniejszym rozpisaniem opcji systemd.