systemd: stadko zamieniających Uniksa demonów (04 sierpnia 2011, 15:54:24)
Czytając o systemd
można czasem przeoczyć większą wizję. Celem nie jest jedynie napisanie kolejnego
zastępcy inita. To tylko element całości, którą jest zdefiniowanie (również
poprzez stworzenie) platformy Linuksowej. Ostatecznie
będzie można powiedzieć, że ,,w Linuksie''
- jest ustawiona nazwa hosta
- listę zalogowanych użytkowników uzyskujemy przez
systemd-loginctl list-sessions - startujemy usługi na żądanie tworząc definicje
.socket - usługi potrzebujące haseł korzystają ze zdefiniowanej metody pytania
- unikalny identyfikator systemu można odczytać z
/etc/machine-id - itp.
xinetd, inetd
czy jeszcze czegoś innego. Osuszanie bagienka różnic między dystrybucjami powinno
ułatwić dostarczanie oprogramowania firmom trzecim.
Aby osiągnać ten cel, systemd dostarczany jest wraz z
garścią pomocniczych programików pojedynczego
zastosowania. Część ujednolica czynności wykonywane we wszystkich dystrybucjach,
część implementuje nowe mechanizmy mające stać się API Linuksa.
Najprostsze (ograniczające się do pojedyńczych syscalli) wbudowane
są w samą binarkę systemd.
Do czego zacząć się przyzwyczajać?
-
hostname1— dostępna przez D-Bus usługa zarządzająca krótką oraz opisową nazwą komputera; konfigurowana w/etc/hostname -
systemd-localed— dostępne przez D-Bus ustawianie języka systemu; konfigurowane w/etc/locale.conf -
systemd-timedated— D-Bus; ustawianie czasu, daty, strefy czasowej; konfiguracja w/etc/adjtime,/etc/timezone,/etc/locatime -
systemd-vconsole-setup— ustawienie układu klawiatury i fontu na konsoli tekstowej; konfiguracja w/etc/vconsole.conf -
systemd-binfmt— konfiguracja jak traktować różne pliki wykonywalne; katalog z konfiguracją:/etc/bindfmt.d -
systemd-tmpfiles— tworzenie plików, katalogów i gniazd przy starcie systemu; również kasowanie starych, nie używanych plików; konfiguracja z/usr/lib/tmpfiles.di/etc/tmpfiles.d -
systemd-sysctl— ustawienie zmiennych jądra; konfiguracje z katalogów{/usr/lib,/etc,/run}/sysctl.di pliku/etc/sysctl.conf -
systemd-modules-load— ładowanie modułów jądra; pliki konfiguracyjne w/etc/modules-load.d -
systemd-kmsg-syslogd— minimalny demon zapamiętujący informacje przed uruchomieniem właściwegosyslogd -
systemd-random-seed— inicjacja puli entropii generatora pseudolosowego; również zapisanie stanu przy wyłączaniu komputera
Wydzielenie tych drobiazgów ze skryptow startowych umożliwia:
- ujednolicenie zachowania wszystkich dystrybucji Linuksa
- ujednolicenie sposobów np. zmiany nazwy komputera na wszystkich dystrybucjach
- uruchamianie powyższych czynności jednocześnie
- uruchamianie w razie potrzeby w trakcie działania komputera (np. pojawienie
się nowego pliku w
/etc/binfmt.d)
Ważnym nowością jest systemd-loginctl i
skojarzony /etc/systemd/systemd-logind.conf zarządzajacy sesjami
użytkownika. Odpowiada m. in. za automatycznie uruchamianie getty
na konsolach, na które przełącza się użytkownik. Login manager daje
informacje o zalogowanych użytkownikach, aktywnych sesjach i także pilnuje sprzątania
procesów po użytkownikach wylogowanych. Poleceniem systemd-loginctl enable-linger
można zażyczyć sobie uruchamiania sesji dla zwykłych użytkowników przy starcie systemu.
systemd-logind zarządza również wszystkimi zestawami
klawiatura+mysz+monitor+inne urządzenia, ułatwiając pracę wielu użytkowników
jednocześnie. Jest to efekt zapowiadanego
pozbycia się ConsoleKit.
... tylko czemu ten systemd nie działa w chroocie (cały system, a nie tylko usługa) ani w vserverowym gueście? :-/