On Tue, Nov 29, 2011 at 06:44:08 +0100, Jakub Bogusz wrote: >> Takie problemy to zjada na śniadanie właśnie dlatego, że nie tylko każdy >> service jest osobno (jak w SysV), ale także mount(point) i czeka >> grzecznie, aż się może wykonać. > > Dwa kroki (lokalne i _netdev) to i przy initscripts/rc-scripts nie > problem. Rzeźba zaczyna się, jeżeli dopiero po zamontowaniu pierwszej > porcji sieciowych systemów plików można uzyskać dostęp do jakiegoś > dalszego elementu, który też ma być zamontowany.
To jest właśnie typowy problem wynikający z monolitycznego skryptu startowego (do którego niejako z boku doklejane są skrypty usług) - każdą sytuację trzeba przewidzieć, albo dopisać sobie w systemie. W systemd ani normalny przepływ danych nie jest kontrolowany skryptem sh (który cierpi na bolączki typu komentowanie danych, kontrola błędów itp. rzeczy, do których sh po prostu nie służy), ani nie masz wymuszonej tym skryptem kolejności operacji, bo każda z nich wydzielona jest do osobnej części i żyje własnym życiem. Jakbyś: 1. podzielił rc.sysinit na minimalne bloki funkcjonalne, 2. każdemu z nich wpisał zależności, 3. wywalił cały narzut sh to dostaniesz z grubsza to, co oferuje systemd. Dlatego też nie musisz ograniczać się do 2 kroków w montowaniu, ale możesz mieć ich nawet 50. Więcej nawet - zależnie od wybranego przy starcie targetu możesz montować różne zasoby i uruchamiać różne usługi (powodzenia w robieniu tego za pomocą runleveli). W ogóle odnoszę wrażenie, jakbym reklamował tutaj jakiś cudowny system, ale tak na prawdę to obrazuje jedynie stopień zacofania SysV. Mamy monstrualny shellcode (który nie służy do pisania takich rzeczy) i masę problemów z nietrywialnymi konfiguracjami. Nie wiem, czy to akurat ta implementacja ostatecznie zostanie, może za miesiąc pojawi się systemd-ng i będzie lepszy, ale już dzisiaj trzeba myśleć o migracji. Co mi się na dzisiaj w systemd nie podoba: 1. zbyt gadatliwy - zamiast samej nazwy usługi, wyświetla cały jej opis (coś jak: Starting SYSV: postgresql Starts and stops the PostgreSQL backend daemon that handles all database requests Started SYSV: postgresql Starts and stops the PostgreSQL backend daemon that handles all database requests). 2. nie aktywuje mi swapów (brak udeva), 3. wymaga devtmpfs - ale da się to później odmontować, 4. coś kulawo obsługuje SysV - próbuje mi uruchamiać usługi, które mam od dawien dawna wyłączone chkconfigiem. Ale to nie są rzeczy, których się nie naprawi. -- Tomasz Pala <[email protected]> _______________________________________________ pld-devel-pl mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
