Krótki instruktaż systemd: usługi
RTFM: systemd.service
Do śmieci: skrypty sysvinit i upstart
Podstawową jednostką w systemd są usługi. Definiowane
w plikach z rozszerzeniem .service
, ładowanych, tak jak
inne jednostki, z katalogów
/lib/systemd/system/
, /etc/systemd/system/
,
/usr/share/systemd/system/
i /usr/local/share/systemd/system/
dla usług systemowych. Usługi definiowane w ramach sesji użytkownika znajdują
się w katalogach session
.
Stwórzmy najprostszą usługę. W jednym z powyższych katalogów załóżmy plik
touchme.service
z następującą zawartością:
[Service] ExecStart=/bin/touch /tmp/hey
To wystarczy. Załadowanie definicji tej usługi do systemd i jej uruchomienie:
# systemctl load touchme.service # systemctl start touchme.service
W katalogu /tmp/
powinien pojawić się pusty plik hey
.
To oczywiście tylko wierzchołek góry lodowej. Podaliśmy jeden parametr usługi — program do uruchomienia. Pełną kontrolę zapewnia ponad setka innych właściwości:
# systemctl show --all touchme.service | wc -l 109
Opis wszystkich znajduje się w na stronach manuala systemd.unit
,
systemd.exec
i systemd.service
. Wśród właściwości
znajdują się również informacyjne, jak np. kiedy usługa została ostatni raz
uruchomiona, zatrzymana itp. Jest też mnóstwo innych skarbów.
Dla porównania, w upstart
definicja usługi pozwala podać
wartość nice
, poprawkę braną przez Out-Of-Memory killera
i czy restartować usługę automatycznie.
Definicja systemd
załatwia te trzy rzeczy, a także:
- piorytet planisty wejścia/wyjścia
- wszystkie dostępne
ulimity
- politykę schedulera CPU (w tym czas rzeczywisty, batch i idle) oraz priorytet w jej obrębie
- wymaganą dokładność timerów wyzwalanych przez jądro
-
capabilities
isecurebits
- nazwę usługi intepretowaną przez PAM i tcp-wrappers
- czy wydzielać prywatny katalog
/tmp/
- podobnie, które katalogi mają być udostępniane tylko do odczytu, do zapisu, a które w ogóle niedostępne (niezależnie od globalnej dostępności)
- czy zająć dla tego procesu nazwę na szynie D-Bus
- zawartość środowiska dla usługi
- użytkownik, grupy, katalog
chroot()
Powyższe to opcje udostępniane przez jądro Linuksa. Systemd ściśle się integrując daje wygodny dostęp i ustalanie parametrów bez konieczności wywoływania tabunu programów pomocniczych.
Poprzednio: Wstęp ; Następnie: Cele i migawki.
Comments
Comments powered by Disqus