UpState – początek dominacji Upstart

W połowie roku 2006 Scott James Remnant z Canonical Ltd. ogłosił powstanie nowego demona, który ma zastąpić wysłużony demon init z pakietu Sysvinit. Główną różnicą a zarazem nowością, jaka miała cechować Upstart, było podejście do uruchamiania usług oparte na zdarzeniach. Dzięki niemu za pomocą Upstart można uruchamiać usługi w sposób równoległy, a nie szeregowy, jak w większości* skryptów startowych wykorzystujących demon z pakietu sysvinit.

Niestety przez długi czas rzeczywistość nie wyglądała tak różowo, jak w pierwotnych planach — z różnych powodów nie działał mechanizm sprawdzania zależności pomiędzy skryptami, więc Upstart nie działał lepiej niż Sysvinit (nie dało się uruchamiać równolegle usług tak, żeby mieć pewność, że będą działały). Ten stan rzeczy zmienił się na szczęście wraz z wydaniem Upstart 0.5.

Jednak Casey Dahlin (człowiek, który “naprawił” Upstart) nie jest zadowolony z aktualnego mechanizmu działania opartego na zdarzeniach i zaproponował wprowadzenie lepszego mechanizmu działania opartego na stanach. Dzięki takiemu podejściu będzie możliwa większa kontrola nad tym, co w danym momencie powinno być uruchomione w systemie. Nowa droga została nazwana UpState, jej kod źródłowy można podziwiać w repozytorium Casey’a w postaci skryptu języka Ruby o długości 534 linii kodu. Złośliwi mogą twierdzić, że Ruby nie nadaje się do pisania takich rzeczy, ale deweloperzy dystrybucji Pardus udowodnili już, że można wykorzystać skrypty Pythona jako initscript.

Dzięki zastosowaniu automatu skończonego znacząco wzrosła też czytelność skryptów startowych — oto przykład:

require 'state'

include UpState

HdAvail = State.new_type("hdAvail", [Event.new("DevKit_FoundHD")], [], [:uid, :name, :blkdev])
FstabAvail = State.new_type("fstabLine", [Event.new("Can_Mount", {:mount_str => /.*/})], [], [[:uid, :name, :blkdev], :mount_str])
Mount = State.new_type("mount", [Event::Epsilon], [Dependency.new(HdAvail, {:uid => /.*/}), Dependency.new(FstabAvail, {:mount_str => /.*/})])

events = [
["DevKit_FoundHD", {:uid => "1234", :name => "myhd", :blkdev => "/dev/sda1"}],
["Can_Mount", {:uid => "1234", :mount_str => "/home"}],
["Can_Mount", {:uid => "1234"}],
]

State.print_all_color
events.each do |x|
State.process_event Event.new(*x)
State.print_all_color
end

Szanowni czytelnicy na pewno docenią prostotę i genialność nowego rozwiązania. Można mieć tylko nadzieję, że już wkrótce skrypty startowe popularnych dystrybucji zaczną wykorzystywać tę nową technologię, aby szybko startować systemy linuksowe.

* Napisałem większości — wiem, że istnieją wyjątki, więc proszę się nie czepiać i nie ciągnąć za słówka

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

81 odpowiedzi na „UpState – początek dominacji Upstart”
  1. Awatar Zbigniew Braniecki
    Zbigniew Braniecki

    autor rozgrywa jakies emocjonalne problemy poprzez pisanie tekstow na temat "dokopmy FLOSS".

    Nie zeby od razu nie mial racji, ale nie nazwalbym szczytem geniuszu umiejetnosci znalezienia wsrod setek tysiecy projektow takiego, ktory nie jest jeszcze skonczony i wysmiania go.

    Ciekawe jest to, ze zachowanie autora postu jest idealnie centralnym uderzeniem w idee stojaca za doktryna "release early, release often". Jedyne co moze mnie sprowokowac, zeby nie wydawac kodu wczesnie tylko dopiero jak bedzie "gotowy" to zeby jakis "geniusz", ktory nie ma nic innego do roboty poza wysmiewaniem przyczepil sie i opisal to jako "przyklad kleski".

    Zastanawiam sie, czy to typ Experta, Buzdygana czy moze jakis zupelnie nowy typ, ktory ma 24 godziny czasu na wyladowywanie swoich frustracji (czemu na FLOSS?) poprzez aktywne uczestnictwo w FUDowaniu osnews.pl…

    1. Awatar linux.jest.zajefajny
      linux.jest.zajefajny

      Szanowny Pan czytelnik nie ma racji. Moje artykuły często mają na celu prezentowanie nowatorskich rozwiązań. Jeśli Szanownemu Panu się nie podobają, to proszę kliknąć "zakop".

      1. Awatar adrian5632
        adrian5632

        Szanowny autor mógłby się nauczyć pisać poprawnie po polsku. W bierniku nie piszemy TĄ, tylko TĘ – niektórych taki język razi…

        1. Awatar wolny
          wolny

          no i nieśmiertelny "okres czasu"…

          może szanowny autor mógłby wymienić okres niebędący okresem czasu? 😉

        2. Awatar MichalK
          MichalK

          np ten kobiecy okres ;-p

        3. Awatar wade
        4. Awatar aix
          aix

          w matematyce również okres funkcji, również w biologii

        5. Awatar pyk
          pyk

          w fizyce: T=1/f
          ale oczywiście, w kontekście "okresu czasu" nie ma okresu niebędącego okresem czasu 🙂

        6. Awatar karakar
          karakar

          Jeśli chodzi o znaczenia słowa okres nie odnoszące się do czasu to według PWN:

          7. jęz. «zdanie wieloczłonowe, będące całością znaczeniową, intonacyjną i retoryczną»
          8. «część utworu muzycznego, będąca całością pod względem melodii, harmonii, rytmu itp.»

        7. Awatar Sławek
          Sławek

          Dyskusja trochę nie na temat, ale okres w muzyce(utworze muzycznym) jak najbardziej odnosi się do czasu. Chyba, że wziąć pod uwagę możliwość przyśpieszenia odtwarzania utworu, przewinięcia. Nie odnosi się do konkretnego momentu, ale do czasu owszem.

      2. Awatar Zbigniew Braniecki
        Zbigniew Braniecki

        mozesz wskazac nowatorskie rozwiazania ktore prezentujesz?
        Piszesz newsa o tym, ze jakis facet chce rozwinac projekt w jakas strone… i wyraznie czerpiesz satysfakcje z mozliwosci satyrycznego nabijania sie z czytelnosci skryptow.
        Po co? Czerpiesz z tego satysfakcje?

        1. Awatar trasz
          trasz

          @Zbigniew Braniecki: Czyli co, powinien byc tylko entuzjazm i zaakceptowanie? 😉

        2. Awatar Krzys
          Krzys

          Ale co w tym jest niezrozumialego? To nie ma byc bajka dla przedszkolakow z wyraznym mottem tylko czytelny kawalek kodu – czytelny dla kodera. To, ze jakis typek zwiazany emocjonalnie z Microsoft (a jesli nie tylko emocjonalnie to tym bardziej tlumaczy sytuacje;-)) nie rozumie tego kodu wcale mnie nie dziwi. Tylko po co od razu newsa o tym pisac? Nie lepiej poczytac troche o jezyku, podszkolic sie i przestac uzalac nad takim stanem rzeczy?

          Inna sprawa jest nabijanie sie z niedokonczonego projektu. Ludzi badzcie sprawiedliwi! Przeciez ludzie z Otwartymi Oknami nabijaja sie dosc czesto z niedokonczonych projektow malego & miekkiego. A to z tego, ze oznaczaja swoje bety jako stabilne i testuja na zwie urzytkownikach, a to ze stabilnosci, a to z bezpieczenstwa itd.

        3. Awatar Sławek
          Sławek

          Upstart nie zastąpił sysvinit w Ubuntu, bo był nie dokończony. Od co. I jest się tu z czego śmiać? A to, że Upstart częściowo został wprowadzony do Ubuntu, to jest już powód do śmiechu.

      3. Awatar gotar
        gotar

        A gdzie to zakopywanie jest?

        1. Awatar 1hero2
          1hero2

          W rameczce pod artykułem/niusem:

          Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.

        2. Awatar gotar
          gotar

          Thnx, to już kolejny raz jak na osnews nie mogę znaleźć czegoś na stronie…

      4. Awatar KOmandos
        KOmandos

        "okres czasu" i "tą" poprawione
        pozdrowienia od KOrekty 😉

      5. Awatar Aphex
        Aphex

        Kolejny "grammar nazi". Brakuje tylko typowego trollowania i mamy idealne połączenie.

    2. Awatar mby7930
      mby7930

      Dokładnie tak. Za najbardziej godne potępienia uważam natrząsanie się z różnych procesów (produkcyjnych, edukacyjnych), które są w fazie początkowej albo też jakimś między-stanie przed osiągnięciem końcowego etapu.

    3. Awatar jellonek
      jellonek

      buzdygan? poki co mu jeszcze brakuje do owego eksperta dziedzin wszelakich, ale… kto wie jak sie rozwinie 😉

    4. Awatar krzy2
      krzy2

      Doktryna "relase early, relase often" stanowi kwintesencję tego, co we FLOSS jest sprzeczne z dobrą praktyką inzynierską.

      1. Awatar przemo_li
        przemo_li

        @krzy2

        Nie czarujmy się jedyną praktyką dłużej goszczącą na polu tworzenia oprogramowania jest tradycja unixa. Nie ma czegoś takiego jak praktyka inżynierska w oprogramowaniu. 😀
        Tworzenie oprogramowania w ogóle nie jest inżynierią 😀
        Poza tym to niejedyny i nie najważniejszy trik FLOSS niezgodny z jaką kolwiek inżynierią (np. jak najwięcej programistów = większy sukces, więcej użytkowników = lepsza jakość, brak kontroli = rozwój w najlepszym kierunku (choć często metodą prób i błędów), używanie najprostszych rozwiązań!! bez względu na wydajność, możliwości itp.)

        1. Awatar gotar
          gotar

          Oczywiście, że tworzenie oprogramowania JEST inżynierią (wtedy gdy nie jest zaawansowaną matematyką albo czystą informatyką akademicką).

        2. Awatar trasz
          trasz

          @przemo_li: Akurat przyklad opisany w niusie jest sprzeczny z podstawowa zasada rozwoju uniksow – z KISS.

        3. Awatar occulkot
          occulkot

          gotar – zartujesz prawda? nawet dodanie emotek nie pomaga tobie i plusujacym/minusujacym dostrzec ironii?

        4. Awatar krzy2
          krzy2

          @przemo_li: Twierdzenie jakoby otwartość rekompensowała braki dobrej praktyki inżynierskiej jest błędne i zostało obalone już kilka lat temu na podstawie danych empirycznych. Patrz Schach S.R., Three Unexpected Results in Empirical Open-Source Software Engineering.

          Oczywiście niektórzy dalej wierzą w nie poparte żadnymi twardymi danymi tezy zawarte w książkach ESR-a — prawdopodobnie dlatego, że mają przez to lepsze samopoczucie.

        5. Awatar Budyń
          Budyń

          @gotar

          Pomijając Polskę, na świecie rzadko który informatyk ma tytuł inżyniera. Inżynieria oprogramowania to taki sam eufemizm jak "inżynier sprzedaży" czy "inżynier ds. konsweracji powierzchni płaskich". Informatyka – tj. Computer Science – NIE JEST w żadnym wypadku dyscypliną inżynierską.

        6. Awatar sevos
          sevos

          Widziałem jak w Finlandii przygotowują inżynierów-informatyków-programistów….

        7. Awatar gotar
          gotar

          Budyń – my tu mówimy o tworzeniu oprogramowania a nie informatyce. Od kiedy to zajęciem informatyka jest pisanie programów? Programy pisze programista, który z informatyki ma prawo być kiepski tak samo, jak informatyk ma prawo nie umieć złożyć sensownego programu.

        8. Awatar gotar
          gotar

          @occulkot – nie, nie była to jednoznaczna ironia. I ja nie wiem, do czego te mordki obrazkowe się smieją, rozumiem tylko tekstowe.

    5. Awatar czytom
      czytom

      Brawo – koles odkryl system stanow uslug i zaleznosci stosowany chocby w skryptach startowych Gentoo

  2. Awatar Thar
    Thar

    Szanowni czytelnicy na pewno docenią prostotę i genialność nowego rozwiązania.

    Dzięki, szanowni czytelnicy woleliby ocenić to sami.

  3. Awatar Rsh
    Rsh

    Mistrzowska ironia. 🙂

  4. Awatar sirsimon
    sirsimon

    A ja daję + !

    1. Awatar kocio
      kocio

      A z jakiego powodu konkretnie? Ciekaw jestem.

      1. Awatar sirsimon
        sirsimon

        Dzięki autorowi dowiedziałęm się, że istnieje coś takiego jak UpState, na jakiej zasadzie działa, na jakim jest etapie, czym się różni od sysvinit, zobaczyłęm przykładowy skrypt. Jasno i zrozumiale napisane.
        Jedyne co nie podoba mi się w newsach tego autora, to destruktywne komentarze i docinki pana Zbigniewa Branieckiego, który na cel wziął sobie krytykę autora i zamias samemu coś napisać, to tylko niepotrzebnie wywołuje wojnę.

        1. Awatar tomekw
          tomekw

          Może to jedna i ta sama osoba? 😉

        2. Awatar Zbigniew Braniecki
          Zbigniew Braniecki

          sirsimon: moze masz racje… samemu napisac nie mam za bardzo o czym, ale od komentowania sie powstrzymam.

        3. Awatar pawels
          pawels

          > istnieje coś takiego jak UpState, na jakiej zasadzie działa, na
          > jakim jest etapie, czym się różni od sysvinit, zobaczyłęm
          > przykładowy skrypt. Jasno i zrozumiale napisane.
          dla mnie to raczej publicystyka (nie jest to news!) o tym "dlaczego >"

        4. Awatar pawels
          pawels

          …"dlaczego «ssie»"

          (wyczyściło mi "tagi html", jakby ktoś mógł poprawić wcześniejszy komentarz byłbym dźwięczny)

        5. Awatar linux.jest.zajefajny
          linux.jest.zajefajny

          "Może to jedna i ta sama osoba?"

          Wielce Szanowny Panie Czytelniku,

          Zapewniam Pana, że Pan ukrywający się pod nickiem Zbigniew Braniecki oraz moja skromna osoba, to zdecydowanie dwie różne postacie znajdujące się w różnych miejscach i czasach…

          Z Olbrzymim Poważaniem,
          L.J.Z.

        6. Awatar szczuro
          szczuro

          ukrywający się pod nickiem

          podpisywanie się imieniem i nazwiskiem nazywa pan ukrywaniem ? ciekawe 😉 panie linux.jest.zajefajny

        7. Awatar ak47
          ak47

          wiesz jakby i ciebie rodzice skrzywdzili takim mianem " linux.jest.zajefajny" (po cenzurze) tez byś miał problem problemy emocjonalne 🙂

  5. Awatar bies
    bies

    Znowu ciężki humor. Jeden tekst Ci się udał, jeden (o Michale Zalewskim exploitującym Wszechświat). Reszta jest siermiężna.

  6. Awatar occulkot
    occulkot

    Mi sie bardzo podoba prosta skladnia upstart. Mysle ze ten programista powinien teraz wziasc sie za poprawke systemu dzwieku pod linuxem – bo pulseaudio niestety przestaje wystarczac (za malo pidow mam na liscie ;( )

    1. Awatar vermaden
      vermaden

      … a ja smialem marudzic ze skrypty do SMF w OpenSolaris/Solaris sa na XML :ASD

      Moze przestana w koncu prostowac banana i siegna po sprawdzone rozwizania jak wielowatkowe skrypty startowe FreeBSD/NetBSD, nie dosc ze beda dzialac, to przy okazji beda mieli wiecej czasu zeby przepisac od zera cos co bedzie nastepca PulseAudio, bedzie lepsze wieksze i jeszcze bardziej ciac, a co! 🙂

      1. Awatar trasz
        trasz

        @vermaden: Skrypty startewe we FreeBSD nie sa wielowatkowe; wykonuja sie jeden po drugim. Tyle tylko, ze w przeciwienstwie do skryptow w Linuksach sa proste i wykonuja sie szybko, wiec nie jest to problemem. Maja natomiast mechanizm automatycznego ustalania kolejnosci uruchamiania na podstawie zapisanych w nich zaleznosci.

        1. Awatar vermaden
          vermaden

          O widzisz mate, te zaleznosci musialy mnie zmylic, my bad 😉

          Inna sprawa ze FreeBSD/NetBSD maja BARDZO szybkie /bin/sh ktore idealnie nadaje sie do skryptow, a dystrybucje Linuxa w przewazajacej czesci uzywaja do tego celu kloca pod nazwa bash, co znacznie wszystko spowalnia.

        2. Awatar Magnes
          Magnes

          Mieli kiedyś w Ubuntu zmienić na coś szybszego (na g się zaczynało zdaje się), ale znając gości od Ubuntu wycofali się z tego. 😉

        3. Awatar occulkot
          occulkot

          @Magnes – jak tylko redhat wymyli cos ciekawego i stestuje to w fedorze mozesz sie spodziewac ze zobaczysz to w ubuntu 😉

        4. Awatar dzikus
          dzikus

          Popieram, nienawidzę bash'a jako /bin/sh, we wszelkich distro jakie mam w utrzymaniu, zamieniam go na dash'a lub pdksh.

          Często przy tym wychodzą babole w initscript'ach gdzie leniwce je piszące nie stosują się do POSIX.

          PS. W PLD odkąd pamiętam /bin/sh jest pdksh :).

        5. Awatar gotar
          gotar

          @vermaden – powtarzasz po raz kolejny kłamstwo na temat rzekomego najczęstszego używania basha jako sh. Pomijając tu PLD, które używa od zarania dziejów pdksh, debianowate na przykład używają dasha. Poszukaj sobie informacji na ten temat, sam na OSNews już to komentowałem kiedyś.

        6. Awatar trasz
          trasz

          @gotar: Ubuntu uzywa dasha dopiero od 6.iles. RHEL i SLES nadal uzywaja basha. Wiec vermaden napisal cos, co albo nadal jest prawda, albo bylo nia calkiem niedawno.

        7. Awatar vermaden
          vermaden

          sam na OSNews już to komentowałem kiedyś

          O RLY?

          Myslisz ze nie mam nic ciekawszego do roboty tylko czytanie kolemtarzy na onecie osnews?

          Niektore dystro uzywaja czegos innego jak debian czy pld (tak wiedzialem o tym wczesniej ale ciesze sie ze nie omieszkales mi o tym przypoamniec), ale wciaz sporo jest takich ktore leca na pale z symlinkiem.

        8. Awatar vermaden
          vermaden

          Pozatym cos nie halo :ASD

          <code>debian# ls -l /bin/sh
          lrwxrwxrwx 1 root root 4 Sep 14 2007 /bin/sh -> bash
          debian# cat /etc/debian_version
          4.0
          </code>

        9. Awatar occulkot
          occulkot

          triglav:~# which sh
          /bin/sh
          triglav:~# ls -l /bin/sh
          lrwxrwxrwx 1 root root 4 2008-02-22 09:13 /bin/sh -> bash
          triglav:~# cat /etc/issue
          Debian GNU/Linux lenny/sid

          @gotar: na gentoo mam niestety to samo ;( – ktos mi sie wlamal pewnie bo jak sam wiesz na pewno tam byl dash…

        10. Awatar Theq
          Theq

          http://serwer22962.lh.pl/debian-lenny-juz-we-wrzesniu/

        11. Awatar ak47
          ak47

          Używasz openrc i baselaout2? Bo jesli tak to ten symlink ma się do uruchamiania systemu jak pi… do jeża. Tutaj jest inny schema uruchamiania usług.

        12. Awatar Theq
          Theq

          I jeszcze wracajac do debiana, jednym z celow wydania lennego jest/bylo przelaczenie sie na dasha, ale "This goal doesn't mean we'd switch to
          dash as a global default, but if people do so on their system, there
          shouldn't be any issue after the last bugs have been finished off"

          oraz "Prepare init.d-Scripts for dependency-based init systems" – http://lists.debian.org/debian-devel-announce/200…

        13. Awatar ak47
          ak47

          hmm pisałem o gentoo jakby ktos nie wiedział:)

        14. Awatar occulkot
          occulkot

          ak47: odpowiadam na:
          "powtarzasz po raz kolejny kłamstwo na temat rzekomego najczęstszego używania basha jako sh"
          tak dla wyjasnienia

        15. Awatar ak47
          ak47

          @occulkot
          tylko że link sh -> bash ma sie w kontekście uruchamiania systemu w gentoo nijak(przynajmniej od openrc). Jak sobie spojrzysz w skrypt uruchomieniowy /etc/init.d/whatever zobaczysz tam nie /bin/sh tylko /bin/runscript który prowadzi do /sbin/rc

        16. Awatar occulkot
          occulkot

          …a co to ma do "używania basha jako sh"?

        17. Awatar ak47
          ak47

          "Inna sprawa ze FreeBSD/NetBSD maja BARDZO szybkie /bin/sh ktore idealnie nadaje sie do skryptow, a dystrybucje Linuxa w przewazajacej czesci uzywaja do tego celu kloca pod nazwa bash, co znacznie wszystko spowalnia"
          to misiu

        18. Awatar gotar
          gotar

          @trasz – RHEL i SLES nie są 'przeważającą częścią'. Takie stwierdzenie wymaga udowodnienia, podejmiesz się?

        19. Awatar gotar
          gotar

          @vermaden:

          ja smialem prostowac banana

          myślę, że jak nie będziesz wycinał kawałka zdania, to nie będziesz się dziwił – zdanie zaczynało się od: "Poszukaj sobie informacji na ten temat".

        20. Awatar gotar
          gotar

          @vermaden:

          albo masz tego debiana zbyt starego (nie znam się na nich, link już ktoś podał), albo sobie tak wybrałeś sam przy instalacji (któraś z dystrybucji pozwalała)

          @occulkot:

          ale to tylko pokazuje, jak ludzie od gentoo się na optymalizacjach znają – potrafią tydzień kompilować system (z czego pewnie pół dnia by oszczędzili nie używając basha jako sh) z jakimiś wyczytanymi na forum flagami tylko po to, żeby w efekcie mieć o 15% wolniejszy system (ale placebo działa i widzą 50% przyrost prędkości).

          A wszyscy mnie minusujący – zmieńcie sobie sh na pdksh, dash czy zsh (tak tak, nawet na tego wypasionego zsh), które przy okazji są zgodne z POSIX (w przeciwieństwie do basha, choć czysty pdksh ma trochę błędów), a później porównajcie czas wykonania wyautoconfigurowanego ./configure.

        21. Awatar trasz
          trasz

          @gotar: RHEL i SLES to jedyne dwa Linuksy, ktore maja komercyjne wsparcie na serwerach.

        22. Awatar gotar
          gotar

          @trasz – bzdura. Wiele różnych firm wspiera wiele różnych dystrybucji. A może mówisz o jakimś konkretnym 'serwerze', np. bazy danych Oracle? To również cię zmartwię – Oracle supportuje swoje środowisko na większej liczbie dystrybucji.

        23. Awatar trasz
          trasz

          @gotar: Sorry, "wsparcie" w wykonaniu firmy Józek&Sons z oczywistych powodow nie wchodzi w gre. A Oracle z Linuksow wspiera IIRC tylko trzy – RHEL, SLES i wlasna dystrybucje. Wiekszosc pozostalych producentow nie wspiera nic poza RHEL i SLES.

    2. Awatar tharkang
      tharkang

      Wziąć.

      1. Awatar occulkot
        occulkot

        kurde – przepraszam ;( – slyszalem ze za kazdym razem jak ktos napisze blad ortograficzny pan bucek zabija malego pingwinka ;( – nie bede wiecej ;(

  7. Awatar Hanka
    Hanka

    Trzeba dodać, że pokazany przykład jest w języku RUBY, a nie PYTHON. Ja doszłam do tego wniosku, po wyrażeniu events.each do |x| , bo z RUBYM nie wiele miałam do czynienia. Osoba nie bardzo zorientowana pomyśli, że przykład zaczerpnięto z dystrybucji Paradus, gdzie w mechanizmie init wykorzystywany jest wg. artykułu PYTHON. Proszę więc nie wprowadzać ludzi w błąd.

  8. Awatar Grzegorz Niewęgłow
    Grzegorz Niewęgłow

    Może jestem dziwny, ale IMO zaprezentowany tu skrypt jest obleśny i próba zrozumienia go boli. Wolałbym coś korzystającego bardziej ze słów requires, provides, on_event, a mniej ze State.new_type czy Event.new. Autentycznie jest to jeden z bardziej nieczytelnych skryptów startowych jakie widziałem. Już w lispie by chyba czytelniejsze było.

    Inna sprawa, że daje to potężne możliwości. Jeszcze inna sprawa, że nie są one pewnie potrzebne 🙂

  9. Awatar http://spock.openid.
    http://spock.openid.

    Ciekaw jestem kiedy to zostanie zintegrowane z jakimś monitoringiem startowanych usług. Bardzo sensown jest tu solarisowy SMF, który nie tylko pozwala na startowanie/zatrzymywanie usług ale umożliwia również monitorowanie usługi i jej restart.
    Inny odwieczny problem to jak pozwolić komuś na restart konkretnej usługi z wykorzystaniem skryptów startowych. sudo na skrypt powłoki to proszenie się o problemy.
    IMHO dobry system startowy to taki co spełnia następujące wymogi:
    – lekki, zapewniający równoległe odpalanie usług
    – obejmujący monitoring tego co uruchamia – jak coś zdechnie to ma znow byc wystartowane, bez zewnętrznych posiłków w postanci np. monita
    – wsparcie dla RBAC'a/innego wynalazku tak aby można było rozdzielać uprawnienia dla userów. Przykład: Administrator DB powinien móc przeładować bazę bez admina OS'a.

    1. Awatar Sławek
      Sławek

      Dlaczego proszenie się o problemy? Nie, jeśli chodzi nam o sam restart – nie przekazujemy dodatkowych parametrów. Skrypt sam może sprawdzić czy ma odpowiednie uprawnienia(na samej górze), a w razie problemów wykonać sudo, przekazując tylko parametr restart. Użytkownik może normalnie wykonać /etc/init.d(lub rc.coś)/skrypt restart . O resztę dba skrypt. Nie znam się tak dobrze w kwestii bezpieczeństwa, więc proszę o sprostowanie. Generalnie, to nie będziemy mieć problemów, jeśli nie zastosujemy w poleceniu sudo symboli wieloznacznych. Tutaj lepiej by się sprawdził OP, ale sam skrypt też może zadbać o pewne rzeczy. Trudne, bo trudne, ale nie niemożliwe.

  10. Awatar sqro
    sqro

    ja bardzo przepraszam ale autor postu nie wyjaśnił na czym ma polegać wyższość rozwiązania. Ponoć jestem inteligentny i potrafie se pewne rzeczy "dośpiewać" sam ale…
    Spróbuje zgadywac
    Jak sie domyślam maszyna stanu wchodzi w stan kiedy tylko warunki przejścia są spełnione (to z teori FSM). W podejściu zdarzeniowym stan (skrypt) odpalany jest w reakcji na zdarzenie.
    Makaron spaghetti zależności powstaje tak czy owak. Ryzyko powstania cyklu również. Jednyny plus który widzę to łatwość sprawdzania zależności gdyż stanowią one warunki brzegowe, oraz wspomniana czytelność skryptów. Minusem natomist jest konieczność ciągłego monitorowania parametrów chociaż fakt że jakieś strasznie opresywne dla proca to nie bedzie.

    Czy dobrze zrozumialem?

  11. Awatar flamenco108
    flamenco108

    Odnoszę wrażenie, że coraz częściej na komentarzach odbywa się jakaś prywatna pyskówka pomiędzy znajomymi, którzy jednakowoż nie są moimi znajomymi. Wydaje mi się, że forum tak poważne jak linuxnews nie powinno być miejscem dla takich rozgrywek. Jeżeli jesteście takimi zdolnymi komputerowcami, to załóżcie sobie gdzieś czata i tam sobie pobluzgajcie. I dajcie spokojnie poczytać.

  12. Awatar m
    m

    nie rozumiem dlaczego opensource boi się opensourcowego launchd od apple. wszystko czego szukają linuxowcy jest tam już zaimplementowane (i działa w osx), można dodawać własne poprawki… Zdaje się, że niektórych zraził plist-owy format plików konfiguracji. Nie rozumiem w takim razie dlaczego nie można dodać własnego…

  13. Awatar Macie Drabant
    Macie Drabant

    I am not sure where you are getting your info, but good topic. I needs to spend some time learning more or understanding more. Thanks for excellent information I was looking for this information for my mission.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *