Dnia środa, 26 października 2005 01:10, Waldemar Dworakowski napisał: > Rafał Rawicki wrote: > > Szymon Nieradka napisał(a): > >> Łukasz Pieczara napisał(a): > >>> http://www.hoeg.org/blog/2005/07/27/fast-booting-debian/ > >> > >> Opis jest do Sarge. W Etch trochę się zmieniło. Nie mam takiej linijki > >> (startup $i start). Domyślam się, że teraz robi to samo: > >> > >> startup $ACTION $SCRIPTS > >> > >> ale ona prawdopodobnie odpowiada nie tylko za start ale i za stop. > >> I tu pojawia się niebezpieczeństwo, że np. zanim zatrzymam jakąś > >> usługę system będzie próbował odmontować dyski. To się zapewne nie > >> uda, więc chwilę później będzie elegancki shutdown... :( > > > > A jakby dodać tam instrukcję warunkową? > > I odpalać w tło tylko przy starcie :) > > IMHO troche ryzykowne. Nie wiem jak sa zrobione semafory > synchronizacji dostepu do zasobow i jak beda przebiegaly procesy - > szczegolnie na maszynach wieloprocesorowych (choc tam zysk moglby byc > najwiekszy). IMHO nie bez powodow ktos wymyslil taka a nie inna > sekwencje ladowania... >
Hmm. To wszystko wykracza poza czas bootowania samych X-ów ale przyznaję, że sam mocno nad tym dumałem. Ktoś wspomniał gdzie indziej, że ważna jest tylko kolejność runleveli- co jest oczywiście nieprawdą: wyobraźmy sobie sytuację uruchamiania równolegle skryptów podnoszenia interfaców sieciowych i usług sieciowych- można spodziewać się, że te drugie nie zostaną uruchomiane właściwie (np. gniazda nie zostaną ustanowione). Kiedyś próbowałem modyfikować skrypty startowe, tak by część zadań uruchamiała się równolegle. Jest spory zysk na czasie i wcale nie jest potrzebna maszyna wieloprocesorowa. Jednak nie można zastosować tego do dystrybucji, bo każda maszyna będzie zachowywać się inaczej- jak podejrzewam. Problem leży w samym działaniu INITa i konstrukcji /etc/rc.d/; skrypty wykonywane są szeregowo. Potrzebny byłby program, którego config wyglądałby trochę jak relacyjna baza danych. Bądź też- owszem, uruchamiać skrypty równolegle, jednak same skrypty musiałyby zawierać mechanizmy (np. instrukcje warunkowe), które chroniłyby je przed niebezpieczeństwami takiego zabiegu. Koniec końców warto wymienić sysV-init na coś lepszego. Dostrzegam, że były dyskusje na debian-devel w tej kwestii. Czy coś z tego wynikło? Ps. Polecam: http://lists.debian.org/debian-devel/2004/01/msg00972.html