Wstęp do systemd

Systemd to menadżer systemu i usług, zamiennik init, SysVinit czy Upstart znany z RHEL6. To pierwszy proces, który startuje podczas ładowania systemu i ostatni proces, który się zamyka w czasie wyłączania systemu.

Cechy systemd:

  • Możliwość równoległego uruchamiania usług.
  • Uruchamianie serwisów za pomocą aktywacji gniazda (socketu) i metodą 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.
  • Transakcyjna implementacja logiki kontroli usług, oparta na zależnościach.
  • Kompatybilność z SysVinit.

Socket (gniazdo) to metoda komunikacji pozwalająca na porozumiewanie jednego procesu działającego na lokalnym systemie z drugim procesem działającym na tym samym lub zdalnym systemie.

D-Bus to inna metoda komunikacji pozwalająca na porozumiewanie się ze sobą wielu procesów uruchomionych równolegle w tym samym systemie lub systemie zdalnym.

Równoległe uruchamianie usług przez systemd ma swoje odbicie w bardziej płaskim drzewie procesów co może być potwierdzone komendą pstree.

# pstree -pu
systemd(1)─┬─ModemManager(616)─┬─{ModemManager}(647)
           │                   └─{ModemManager}(664)
           ├─NetworkManager(749)─┬─{NetworkManager}(913)
           │                     └─{NetworkManager}(923)
           ├─abrt-watch-log(5616)
           ├─abrt-watch-log(5660)
           ├─abrtd(5593)
           ├─agetty(1340)
           ├─alsactl(615)
           ├─atd(14593)
           ├─auditd(13824)─┬─audispd(13834)─┬─sedispatch(13844)
           │               │                └─{audispd}(13845)
           │               └─{auditd}(13833)
           ├─avahi-daemon(8851,avahi)───avahi-daemon(8852)
           ├─chronyd(24349,chrony)
           ├─crond(25603)
           ├─cupsd(13709)
           ├─dbus-daemon(630,dbus)
           ├─dnsmasq(2807,nobody)───dnsmasq(2808,root)
           ├─dnsmasq(25094,nobody)───dnsmasq(25095,root)
           ├─gssproxy(14201)─┬─{gssproxy}(14202)
           │                 ├─{gssproxy}(14203)
           │                 ├─{gssproxy}(14204)
           │                 ├─{gssproxy}(14205)
           │                 └─{gssproxy}(14206)
           ├─httpd(4303)─┬─httpd(9317,apache)
           │             ├─httpd(9318,apache)
           │             ├─httpd(11444,apache)
           │             ├─httpd(16316,apache)
           │             ├─httpd(16317,apache)
           │             ├─httpd(16651,apache)
           │             ├─httpd(16711,apache)
           │             ├─httpd(17668,apache)
           │             ├─httpd(32502,apache)
           │             └─httpd(32503,apache)

Podstawową komendą do pracy z systemd jest systemctl. Niektóre opcje tego polecenia przedstawia tabela poniżej.

Opcja Opis
demon-reload Czyta ponownie, przeładowuje wszystkie pliki konfiguracyjne unitów i tworzy ponownie całe drzewo zależności.
enable / disable Aktywuje lub deaktywuje unit w autostarcie systemu.
get-default (set-default) Pokazuje (ustawia) domyślny cel do załadowania.
get-property (set-property) Zwraca (ustawia) wartość ustawienia.
is-active Sprawdza czy unit jest uruchomiony.
is-enabled Wyświetla czy unit jest dodany do autostartu.
is-failed Sprawdza czy unit jest w stanie awarii.
isolate Zmienia stan uruchamiania systemu (podobne do runleveli w SysVinit).
kill Zabija wszystkie procesy unitu.
list-dependencies Listuje drzewo zależności dla unitu.
list-sockets
Listuje unity typu gniazdo (socket).
list-unit-files Listuje zainstalowane pliki unitów.
list-units Listuje znane unity. Jest to domyślna opcja gdy systemctl jest uruchamiane bez opcji.
mask (unmask) Zakazuje (zezwala) na automatyczną i ręczną aktywację unitu.
reload Zmusza działający unit do ponownego przeczytania pliku konfiguracyjnego.
restart Zatrzymuje działający unit i restartuje  go.
show  Pokazuje właściwości unitu.
start (stop)  Uruchamia (zatrzymuje) unit.
status Wyświetla informacje o statusie unitu.

Leave a Reply

Your email address will not be published. Required fields are marked *