systemd: stadko zamieniających Uniksa demonów
Czytając o systemd
można czasem przeoczyć większą wizję. Celem nie jest jedynie napisanie kolejnego
zastępcy init
a. 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.d
i/etc/tmpfiles.d
-
systemd-sysctl
— ustawienie zmiennych jądra; konfiguracje z katalogów{/usr/lib,/etc,/run}/sysctl.d
i 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.
Archived comments:
abc 2011-08-04 17:10:38
... tylko czemu ten systemd nie działa w chroocie (cały system, a nie tylko usługa) ani w vserverowym gueście? :-/
Remigiusz 'lRem' Modrzejewski 2011-08-04 17:16:06
Nie działa w gueście? No to pozamiatane...
m 2011-08-04 17:23:05
I dlaczego wymaga dbusa?
zdz 2011-08-04 17:43:49
abc: jak nie działa? Ma problem z zamountowaniem katalogów czy coś innego? Jak używasz "systemd-nspawn" jako helpera chrootowego to też jest problem?
m: bo wymaga IPC. Można było użyć czegoś znanego, przetestowanego i zdebugowanego (D-Bus) albo wymyślać koło samemu.
abc 2011-08-04 18:39:07
zdz: w gueście vservera nie masz uprawnien do montowania czegokolwiek w najczęstrzym przypadku. chroot jest dużo mniej interesujący więc go pomińmy.
d33tah 2011-08-05 10:37:36
http://xkcd.com/927/
Comments
Comments powered by Disqus