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.
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:
zadanie | sysvinit | systemd |
---|---|---|
zadanie | sysvinit | systemd |
Uruchom usługę | service example start | systemctl start example |
Zatrzymaj usługę | service example stop | systemctl stop example |
Zrestartuj usługę (Stop - Start) | service example restart | systemctl restart example |
Przeładuj konfigurację usługi | service example reload | systemctl reload example |
Status usługi | service example status | systemctl status example |
Zrestartuj usługę jeżeli działa | service example condrestart | systemctl condrestart example |
Pozwól na start usługi przy uruchamianiu systemu | chkconfig example on | systemctl enable example |
Zabroń startu usługi podczas uruchamiania systemu | chkconfig example off | systemctl disable example |
Sprawdź czy usługa jest uruchamiana wraz ze startem systemu | chkconfig example | systemctl is-enabled example |
Lista usług uruchamianych bądź nie wraz ze startem systemu | chkconfig --list | systemctl list-unit-files --type=service |
Informacje o konkretnej usłudze | chkconfig example --list | systemctl show example |
Dodaj i skonfiguruj usługę | chkconfig example --add | systemctl 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.