Krótki instruktaż systemd: użyteczne drobiazgi



RTFM: sd_notify

Na początku należy mieć świadomość, że aktywacji jednostek nie podlegają tylko usługi, a wszystkie możliwe typy. Można więc stworzyć gniazdko, z którym połączenie zaktywuje inne gniazdo. Albo licznik czasu wyzwalany pojawieniem się pliku w katalogu. Efektem nawiązania połączenia może być zamontowanie urządzenia. I to wszystko wyrażone naturalnie zmienną konfiguracyjną Unit=.

Przy konfigurowaniu jednostek działających w podobny sposób można skorzystać z dyrektywy .include. Usługi mogą korzystać z instancji generowanych dodaniem znaku @ do nazwy.

Pisząc skrypty działające jako usługi warto je wzbogacić wywołaniami polecenia systemd-notify przekazującymi konkretniejsze informacji o stanie działania. Dla demonów w C do poznania jest strona manuala funkcji sd_notify(). Pełniejszy status może wyglądać następująco:

# systemctl status avahi-daemon.service
…
      Status: "Server startup complete. Host name is dhartha.local. Local service cookie is 3239089184."

Wpisanie zależności jako OnFailure= pozwala zaregować na błędy przy uruchamianiu/restartowaniu usługi. Efektem może być np. aktywowanie zadania wysyłającego do administratora maila/SMSa, że kluczowa usługa przestała działać.

Aktywacja usług na żądanie może trwać długo. Zawsze możemy taką długostartującą usługę przypisać do .wants/ któregoś z celi aktywowanych przy bootowaniu. Wtedy uruchomienie usługi nastąpi przy starcie systemu.

Zdarza się czasami popsuć system w sposób uniemożliwiający prawidłowy start. Niechcący można chociażby wyłączyć getty dające logowanie na konsolach i nie wystartować sieci z ssh. Uruchomienie awaryjne systemu realizujemy przez linię poleceń jądra, w ktorej przekazujemy nazwę jednostki do aktywowania zamiast default.target. Przykładowo systemd.unit=emergency.target. Jest o tyle lepsze od podania single lub init=/bin/bash, że po naprawieniu możemy przejść do normalnego uruchomienia systemu: systemctl default.

W czasie pracy można przejść do awaryjnej linii poleceń domyślnie konfigurowaną usługą kbrequest, startowaną skrótem klawiaturowym Alt+↑.

Poprzednio: Kontrola startu; Następnie: Spis treści.


Archived comments:

DeHa 2010-08-12 21:02:44

Wszystko, co tu przeczytałem wygląda bardzo na czasie i fajnie. Widać, że ktoś to przemyślał.

Co z tego, natomiast, że mamy piękne wnętrzności skoro z zewnątrz dalej jesteśmy pryszczaci?

Paweł Ciupak 2010-08-12 23:53:06

> Wszystko, co tu przeczytałem wygląda bardzo na czasie i fajnie.

O Iphone też mówią, że wygląda bardzo na czasie.

Comments


Comments powered by Disqus