Portál AbcLinuxu, 30. dubna 2025 11:20

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
29.6.2006 12:43 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Jak už jsem řekl ve plamenné diskusi pod inkriminovanou novinkou, kdybych na to měl znalosti a zkušenosti, rád bych se přidal. Takhle budu každopádně fandit, držet palce a třeba se připojím s jedním totálně rozhozeným systémem, když bude zájem o nějaký ten testing. Moje knowledge roste den za dnem, tak až se začnou za nějakou blíže nespecifikovanou dobu věci dít, možná už bude na takové jakž takž úrovni, že se budu moct zapojit aktivněji :o)

Ta myšlenka se mi opravdu líbí. A podobná věc mě napadla už kdysi. Ale zůstalo to jenom u toho "napadnutí" :o)
29.6.2006 13:00 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Díky! Moc dobře si pamatuji, že jsi to řekl, ale nechtěl jsem zbytečně kazit tu uřvanou diskusi nějakými konstruktivními příspěvky ;-)
Takže beru tě za slovo. Znalosti a zkušenosti taky nemám, takže co. Minimálně to bude sranda s nejasným koncem ;-)
29.6.2006 14:38 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
No, já nemám znalosti a zkušenosti prakticky žádné, ale razím heslo, že žádný učený z nebe nespadl ;o)

Určitě by to mohla být velká sranda a příležitost se toho naučit hodně o Linuxu a to i v případě, že bych se na tom případně podílel jenom jako pokusnej králík :o) Už to by za to z mého hlediska stálo.

A Python mám fakt rád. Přeju hodně štěstí. Průběžně informuj, jak se to vyvíjí. Jestli se to teda doopravdy rozjede.
stativ avatar 29.6.2006 15:25 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
žádný učený z nebe nespadl ;o)
A kdyby ano, tak by se zabil :)
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
29.6.2006 15:33 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
No moment, většina kosmonautů (nebo snad všichni) jsou, pokud vím, vysokoškolští absolventi? ;-)
30.6.2006 18:15 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jenže on nespadne :o)
stativ avatar 29.6.2006 12:44 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Prakticky je to tedy to same jako InitNG
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
29.6.2006 13:10 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Já vím, koukal jsem se na to (ale nezkoušel). Je to na velmi dobré cestě, ale ... je to napsané v céčku. Nic proti tomu, ale té práce je fakt strašně moc. Už toho mají sice hodně hotového, ale když se tam musí implementovat každá ptákovina, tak je to opravdu peklo. Takže bych vyvojářům přál, aby se jim dařilo, ale sám bych do toho nešel. Stačí se podívat do zdrojáků do adresáře plugins a představit si, jak by se to zjednodušilo ve vysokoúrovňovém jazyce.
29.6.2006 13:06 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Taktéž se mi nápad velice líbí, ale potřeboval bych hodně věcí doštudovat, hlavně Python. Možná by se mohl pohledat už existující podobný projekt a dotáhnout ho.
Pochybnost, nejistota - základ poznání
29.6.2006 13:23 vlanav | skóre: 24 | blog: Dlouhý den
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Existuje projekt m0n0wall (vice na http://m0n0.ch/wall), ktery ma svuj init napsany v PHP a konfiguraci ulozenou v XML souboru. Vubec jsem nestudoval jak to vlastne funguje, takze jde pouze o preklad oficialni informace ze stranek projektu. Ja jsem pouze uzivatelem tohoto skveleho a instantniho firewallu.
29.6.2006 13:07 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
uff, povodne som chcel komentovat bod po bode, ale nakoniec som zistil, ze autor vlastne chce objavit objavene. Takisto, pre slovicka typu "lepsi, rychlejsi" by neskodilo uviest vztazne body, uviest/najst dovody, preco tvrdi, ze nieco "je pomale".

provokacna otazka: ako bude urychleny start apache, ak ho budem spustat z pythonu a nie zo shell-u ?

29.6.2006 13:18 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Ne, díky, už jsem se kvůli tomu pohádal dost a vystačí mi to na dlouhou dobu dopředu. Hlavní důvod pro zrychlení vidím v paralelním spouštění. Jazyk samotný moc velký vliv nemá. Proto si myslím, že psát to v céčku je zbytečný masochismus. Na druhou stranu, když už to chci přepsat od nuly, tak by byla blbost zůstat u shellu.
Heron avatar 29.6.2006 13:32 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
To paralelní spouštění se ti taky může hodně prodloužit v případě, že se startuje více služeb součastně, které intenzivně načítají data z disku.
29.6.2006 14:18 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Kdyby se ukázalo, že nějaké dvě služby startují výrazně rychleji po sobě než současně, tak se tam dá přidat závislost. Ta ničemu dalšímu zavazet nebude. Budu na to pamatovat až při optimalizacích.
pol128 avatar 29.6.2006 13:19 pol128 | skóre: 18
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Asi myslel to, že sa apache bude spúšťať zároveň s mysql. Nechcem ani vidieť čo to spraví, ak budú na sebe závislé. Nakoniec ale predsa dostaneš prompt, ale keďže sa všetko ešte stále bude spúšťať, tak robiť nebudeš môcť nič. Viď Windows...
29.6.2006 14:30 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Asi myslel to, že sa apache bude spúšťať zároveň s mysql. Nechcem ani vidieť čo to spraví, ak budú na sebe závislé. Nakoniec ale predsa dostaneš prompt, ale keďže sa všetko ešte stále bude spúšťať, tak robiť nebudeš môcť nič. Viď Windows...
Když budou na sobě dvě služby závislé, tak se současně spustit nemohou. A jestliže dáváte přednost tomu, aby se prompt objevil až když se vše nahodí, tak není problém - závislosti to zařídí.
29.6.2006 14:34 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
aha, vy mate v umysle napisat v pythone program init. No, vela stastia. Prompt (konzolovy) ma na starosti prave tento programcek. Moze mat na starosti i spustanie xdm/gdm/kdm/*dm, to mi vsak pripada neprakticke.
29.6.2006 14:41 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
aha, vy mate v umysle napisat v pythone program init. No, vela stastia. Prompt (konzolovy) ma na starosti prave tento programcek. Moze mat na starosti i spustanie xdm/gdm/kdm/*dm, to mi vsak pripada neprakticke.
Ne, stávající init bych zezačátku nechal plavat a navíc existují alternativy. V něm úzké hrdlo nevidím. Možná, až opravdu nebude nudou co dělat...
29.6.2006 13:19 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
ale kludne sa moze pytat, ak budem vediet (a vsimnem si otazku), odpoviem :-)
JiK avatar 29.6.2006 13:21 JiK | skóre: 13 | blog: Jirkoviny | Virginia
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
to me taky vrta hlavou, ja myslel, ze prodlevy pri bootu jsou diky tem spoustenym programum (a jejich binarky jsou kompilovany z C nebo C++) a ne diky tomu ze je spousti bash, python, nebo trebas jakykoliv jiny shell...

Zajimalo by mne, zda se dosahne aspon 1% uspory casu ci to naopak bude jeste horsi...
Heron avatar 29.6.2006 13:35 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Mno, když nějaká služba na něco čeká (třeba na odpověď ze sítě -- typicky ntpd a jeho počáteční synchronizace), tak se mezitím může spouštět jiná služba. Nebo se může "na pozadí" dělat fsck třeba /home partišny a mezitím se může spustit prakticky všechno ostatní.
29.6.2006 13:42 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
fsck na pozadi je pekna vec ... ale co v pripade, ze fsck bezi prave na particiu /var, vam nabehnu (alebo nenabehnu) vsetky sluzby, pid files, log files, atd sa otvoria na / particii (v adresari /var) a az potom sa primountuje fsck-nuty /var.

msk avatar 29.6.2006 13:47 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Inymi slovami - zbytocne problemy. Zatial sa mi stalo len par krat, ze mi originalny init nevyhovoval - ked nesiel ntp server, voci ktoremu sa server synchronizoval (cakanie na timeout bez login prompt) a ked neslo dns a ja blbec som mal v konfigurakoch firewallu hostname (cakanie na timeout bez login prompt).
Heron avatar 29.6.2006 13:57 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Tohle by bylo v závislostech. Je jasný, že /var bude mít jako závislost snad všechno.
JiK avatar 29.6.2006 13:46 JiK | skóre: 13 | blog: Jirkoviny | Virginia
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Ano, kdyz budeme sluzby spoustet paralelne, mozna se neco usetri. Nicmene, nejde to i v Bashi? nebude cely (chabe otestovany) system daleko nachylnejsi ke kritickym chybam? A nebudou ty chyby mit zavaznejsi nasledky? Typicky napriklad kolaps aplikace, protoze potrebuje neco co se jeste nespustilo nebo uz zaseklo?
Heron avatar 29.6.2006 14:00 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jde to i v Bashi. Prakticky stačí v init skriptu na řádku, kde se spouští binárka daemona, dát znak '&'.
29.6.2006 14:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Nemluvě o tom, že většina démonů se tak jako tak prakticky hned po spuštění odforkuje a původně spuštěný proces skončí…
Heron avatar 29.6.2006 14:54 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Mno, to bych neřekl. Alespoň ve FC to tak není. Na něco (ntpd, nebo sendmail, když není dobře nastavenej a čeká na timeout DNS) se čeká hooodně dlouho.
29.6.2006 15:01 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
No, bývalo to dobrým zvykem. Ale časy se mění… S tím sendmailem máte pravdu, typicky s tím byly problémy, pokud nebyl schopen resolvovat vlastní hostname.
Marián Kyral avatar 29.6.2006 14:42 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
V Gentoo to už je (závislosti a paralelní spouštění služeb). Je to děláno přes shel skripty.

Ale třeba ten nápad s fsck na pozadí by se mi zamlouval.
29.6.2006 14:55 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Python versus Bash? No, nějak dnes nemám bojovnou náladu ;-)
Ale pro Python jasně mluví jeho možnost předkompilovaných modulů, objektový návrh, práce s vlákny (modul thread a threading), zámky, zacházení s datovými strukturami a vůbec hromada nativních vlastností, které _velmi_ usnadňují práci ve srovnání s bashem.

Pak jste zmínil tu náchylnost k chybám. Stávající stav je takový, že kterákoli služba dokáže zablokovat boot systému. Myslím, že nový návrh bude v tomto směru určitě krok k lepšímu. A pro případ, že totálně zhavaruje celý startovací proces zde zůstává možnost změnit runlevel a vrátit se ke starým shellovým initskriptům (není důvod je smazat z disku).
29.6.2006 15:09 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
preco nie python (a ani perl, atd):

- potrebujeme interpreter, ulozeny (aj s kniznicami) na filesysteme / (/usr niektore distribucie mountuju pocas boot-u).

- potrebujem zarucit, ze syntax jazyka (a ani api pouzitych kniznic) sa nezmeni pocas zivota init skriptov. takze potrebuje dva pythony, jeden system (v /bin), druhy pre ostatnych userov (v /usr/bin), dvoje kniznice, systemove (/lib) a uzivatelske (/usr/lib). Zaroven nam to zabezpeci krasne bugy medzi verziami.

29.6.2006 15:25 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
preco nie python (a ani perl, atd):

- potrebujeme interpreter, ulozeny (aj s kniznicami) na filesysteme / (/usr niektore distribucie mountuju pocas boot-u).

Někde na disku ten interpret+příslušenství být musí. A je úplně jedno, jestli je to bash+sed+awk+find+fsck nebo Python+knihovna. Samozřejmě, že je to problém, ale je úplně stejný pro oba přístupy.
- potrebujem zarucit, ze syntax jazyka (a ani api pouzitych kniznic) sa nezmeni pocas zivota init skriptov. takze potrebuje dva pythony, jeden system (v /bin), druhy pre ostatnych userov (v /usr/bin), dvoje kniznice, systemove (/lib) a uzivatelske (/usr/lib). Zaroven nam to zabezpeci krasne bugy medzi verziami.
Totéž potřebujete zaručit i pro Bash a všechny externí programy (a jejich vstupy, výstupy a parametry), které se z něj spouští. V shellu bývá zvykem parsovat textový výstup z programů, přičemž ten nebývá _nikde_ specifikován. Cesty k programům jsou pokaždé jiné. Stačí napsat /sbin/ifconfig a na polovině systémů jsem ztracen. Různá GNU rozšíření také udělají své. Řekl bych, že Python je na tom nesrovnatelně lépe.
Mikos avatar 29.6.2006 14:05 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Největší prodlevy zjevně nejsou způsobeny spouštěním samotných programů. Např. Arch Linux umožňuje paralelní spouštění daemonů (člověk si v /etc/rc.cionf nastaví které daemony se mají spouštět na pozadí a v jakém pořadí) a já sem pomocí toho ušetřil cca 10 sekund času (teď mi trvá boot až do KDM asi 31 sekund, dříve trval něco přes 40 sekund.... upozorňuju že mi startuje docela velké množství daemonů, Arch má naštěstí init skripty hodně rychlé ;-)).

Stačí použít program bootchart a člověk může krásně vidět, kde ten boot vázne. Největší prodlevy jsou způsobeny načítáním dat z disku (seekování). Proto taky vznikl project fcache (viz moje nedávná zprávička Fcache - výrazné zrychlení bootu), který pomocí vytvoření diskové cache linearizuje čtení z disku a boot dokáže zrychlit někdy až o několik desítek sekund! V mém případě bych se dostal (podle bootchartu) něco pod 20 sekund (tzn. zlepšení o dalších 10 sekund, to není špatné ;-)). Bohužel fcache zatím podporuje jen ext3 a já používám reiserfs, takže ho prozatím používat nemohu...
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
29.6.2006 14:43 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Svůj názor na vliv overheadu na interpretaci skriptů jsem už řekl (předpokládám, že je naprosto zanedbatelný). Ale rád se nechám usvědčit z omylu. I když, učit se Python jen proto, abych si mohl provést drobnou modifikaci inicializačního skriptu systému, by se mi moc nechtělo…
Daniel Kvasnička ml. avatar 29.6.2006 15:25 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Moc se v tomhle nevyznam (i kdyz subjektivne mi to zni pozitivne, ten napad), takze me kdyztak opravte...ale neni ta pomalost bashe nahodou zpusobena tim, ze pri svem behu pouziva (a musi spoustet binarky) dalsich nastroju jako je awk, sed a dalsi, zatimco python by v drtive vetsine zvladal vse sam?

Proste podobny duvod, proc je CGI pomalejsi nez mod_* reseni.
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
msk avatar 29.6.2006 13:16 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Som hlboko presvedseny o tom, ze fakt, ze su init scripty pisane v shelli, nema na rychlost bootu takmer ziadny vplyv. Paralelne spustanie sluzieb teda zatial vidim ako jedinu vyhodu takehoto projektu. Takisto som extremne alergicky na kadejake wrappery typu service, takze centralizacia a nedajboze nejake socketovanie mi pride ako totalny nezmysel. Nehovoriac o tom, ze najrychlejsi boot je respawn a ze bootujem 2x za tyzden.
29.6.2006 15:04 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Nějaký wrapper vždycky existuje. Může mít různé podoby, ale bez něj se strašně duplikuje kód. Přiznávám, že ve Fedoře stále ještě píšu
/etc/init.d/network restart
a nikoli
service network restart
Ale to sem nepatří. A co se týče centralizace - musí přece existovat _jeden_ proces, který se postará o závislosti. Paralelní spouštění se bez tohoto neobejde. Leda by se příšerně hrkalo s diskem, což nechci.
Heron avatar 29.6.2006 13:28 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin

Mno, myšlenka je to velmi chválihodná. S init skriptíkama jsem si také hrál. Sice nechápu, proč to musí být v pythonu (resp, co nabízí navíc proti bashu), ale proč ne.

Ale jako před každým velkým projektem je dobré si položit jednu otázku: má to vůbec smysl?

Tím chci ríct, že např rychlejší boot by mohl být až jako doplněk, rozhodně bych ho nedával na první místo. (Nebo bootujete každé 3 minuty?)

Pak by bylo dobrý udělat jednotný systém. Např Fedora má na to příkaz service, který nabízí přibližně to, co napsal autor blogu, ale třeba PID a zámky běžících služeb má na starosti initskrip dané služby. Tj. každý daemon to pak má jinde.

minimální práce s diskem během bootu

Tohle moc nechápu, to snad záleží na službách, které se spouští. Samotný PyInit toho stejně moc číst / zapisovat nebude.

-pokud to závislosti dovolí, login prompt na konzole bude dostupný i když se nějaká služba při bootu zakousne

Tomuhle bych dal PRIO=1 :-)

Ješte bych přidal runlevely.

Heron
29.6.2006 13:35 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
ad PRIO=1
v slackware by malo stacit zmeni /etc/inittab, v riadoku
rc:2345:wait:/etc/rc.d/rc.M
nahradit wait za once

nieco podobne budete mat aj v ostatnych distribuciach

Heron avatar 29.6.2006 13:39 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jdu to testnout.
29.6.2006 13:43 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
tiez som zvedavy :-)
osobne ma ta otazka netrapi, moj priemerny uptime sa pohybuje vysoko nad hodnotou 100 dni :-)
29.6.2006 13:54 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Sice jsem byl nejdřív proti, ale nakonec, proč ne. V podstatě jediným efektem bude to, že taková distribuce nepojede na embedded systémech, ale to by se mohlo s příchodem Parrotu taky vyřešit.

Nemyslel jsi na nějaké cachování konfiguráků? Že to místo do xy souborů hodíš do nějaké velké cache a při změně v nějakém souboru to prostě přegeneruješ?. V podstatě by se na tohle dala použít přímo serializace objektů v Pythonu.

Ze kterého z existujících init systémů by jsi si vzal příklad? Já můžu říct, že se mi asi nejlépe dělalo s Gentoo initem. Adresáře /etc/init.d a /etc/conf.d to byla paráda. Protipólem je potom CentOS se svým /etc/rc a /etc/sysconfig bordelem.
When your hammer is C++, everything begins to look like a thumb.
msk avatar 29.6.2006 14:03 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Nemyslel jsi na nějaké cachování konfiguráků? Že to místo do xy souborů hodíš do nějaké velké cache a při změně v nějakém souboru to prostě přegeneruješ?
Nieco podobne sa teraz developi na urovni kernelu, nepamatam si, ako sa to vola. Vytvori sa tomu mala partition a tam si to sekvencne pri boote nasype vsetko v takom poradi, v akom to z disku precitalo. Pri dalsom boote sa to sekvencne cita z tej malej partisny a disk zbytocne neseekuje. Ale podla mna je to kravina.
Mikos avatar 29.6.2006 14:07 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jmenuje se to fcache - viz moje zprávička Fcache - výrazné zrychlení bootu. A něco co zrychlí boot až o několik desítek sekund opravdu za kravinu nepovažuju.
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
29.6.2006 14:11 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Při bootu to samozřejmě musí všechny ty konfiguráky načíst a tudíž hrkat s diskem. I když se mi to nelíbí, tak s tím nic nenadělám. Ty konfiguráky jsou příliš různorodé, takže jaderný přístup je asi jediná přímá možnost - což rád přenechám jiným ;-)
Heron avatar 29.6.2006 14:18 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
To mi silně připomíná prefetch techniku ve WinXP.
29.6.2006 14:57 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Tohle je aspoň transparentní a mimo filesystém. :-)
29.6.2006 14:10 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
ja osobne by som privital moznost dvojitej konfiguracie: balickovej a systemovej. Upgradnem balicek, zmeni sa mi default nastavenie (vratane pribudnutia novych, pre beh sluzby potrebnych parametrov) a neprepise moje. Priklad s php: ja by som si nastavil register_globals=on a vobec by ma netrapilo, ako sa casom tento parameter meni v balicku.

dalsie co by som uvital, je viacnasobne spustanie sluzby (s roznymi konfiguraciami, samozrejme).Priklad:

rc.httpd --service httpd-php4 start (config: /etc/httpd/httpd-php4.conf)
rc.httpd --service httpd-php5 start (config: /etc/httpd/httpd-php5.conf)
Mikos avatar 29.6.2006 13:54 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Init skripty v Pythonu bych sám také uvítal, vzhledem k tomu že mám Python opravdu rád a shell mi příjde ve spoustě případů jako zbytečný přežitek (i když v jiné spoustě případů se zas hodí jakožto nejjednodušší prostředek k porvedení dané práce ;-)).

Ale co se týče paralelního spouštění služeb, tak to všechny lepší distribuce umožňují nativně už teď :-) Používal sem to jak v Gentoo, tak nyní v Arch Linuxu a boot to opravdu dosti výrazně zrychluje.
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
29.6.2006 14:18 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
K manuální práci se službami bych přidal ještě reload (znovunačtení konfigurace).

Jinak zajímavý koncept služeb používá také daemontools (od DJB). Umí to udělat službu téměř z čehokoliv, jednoduše se to konfiguruje. Vůbec to neřeší závislosti apod., ale pojetí unixové služby a jak se starat o její běh mi přijde dobře vymyšlené a přitom jednoduché.
29.6.2006 15:27 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Opravte mne, jestli se mýlím, ale není největším problémem stávajícího řešení to, že se při bootu volá na 30x bash? Python interpret se přeci startuje stejně (pomalu), co na tomto řešení bude lepšího?

Pokud je mi známo, projekty jako init-ng jsou dneska již dosti daleko, myslím, že je to dokonce psané v jazyce C. Nebylo by lepší se třeba soustředit na tohle?

Jsou to jen moje domněnky, nikdy jsem se tím nezabýval, protože mi připadá bootování normálně rychlé :-) Zastávám názor, že Windows XP se stejným počtem služeb, co mám já, nabootuje stejně rychle (když jsou Windows zasviněný, tak i pomaleji).
Later --- Lukáš Zapletal
29.6.2006 15:34 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Opravte mne, jestli se mýlím, ale není největším problémem stávajícího řešení to, že se při bootu volá na 30x bash? Python interpret se přeci startuje stejně (pomalu), co na tomto řešení bude lepšího?
Mám v úmyslu pouštět interpret pythonu jednou jedinkrát. Není nejmenší důvod pouštět další, když mohu raději spustit další vlákno procesu. Zbytečně bych ztratil kontext. A budu-li chtít spustit další část kódu, tak prostě do stávajícího interpretu nahraju modul předkompilovaný do bajtkódu.
29.6.2006 15:38 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
no, fork tam treba tak ci tak (aby sa zarucilo, ze napr apache.py neovplyvni skor spustena samba.py). A po prvom natiahnuti je bash nacachehovany.

podla mna je najvacsi problem sucasnych rc skriptov ten, ze sa autori (debian/red hat/mandrake) snazia, aby vyzerali co najstrasnejsie.

v kazdom pripade, rychlost inicializacie ovplyvnuje jeden znak ... &

Heron avatar 29.6.2006 15:48 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu

že se při bootu volá na 30x bash?

$time bash -c "exit"

real    0m0.002s
user    0m0.000s
sys     0m0.000s

Řekl bych, že tohle nezdržuje ;-)

29.6.2006 15:50 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Bash startuje pomalu? Nikdy jsem si toho moc nevšiml... :-D Zrovna tady vidím spíš marginální výhody...spíš by ten initproces mohl být třeba rovnou hostitelem síťových služeb, exportovat nějaké RPC (samozřejmě nějak zabezpečeně... ^_^), podporovat SNMP a podobné kraviny. :-D
29.6.2006 15:57 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
sietove: ipv4? ipv6? ipv8? ...
rpc: xml-rpc nad https so zavislostami na libxml, libhttp, libssl, ... ?

radsej 100x jeden nastroj, co robi svoju vec, a robi ju poriadne, ako 1 nastroj co robi 100 veci s bugmi

Mikos avatar 29.6.2006 15:59 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jaky ipv8? Ti přeskočilo? ;-)
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
29.6.2006 16:17 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
No jen nemysli. Jednoho dne objevíme mnoho dalších vesmírů a co potom? :-D
29.6.2006 16:17 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jenom gedankenexperiment... ;-)
29.6.2006 16:38 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
sietove: ipv4? ipv6? ipv8? ...
rpc: xml-rpc nad https so zavislostami na libxml, libhttp, libssl, ... ?
Kdo se bojí závislostí, nesmí do lesa ;-)
radsej 100x jeden nastroj, co robi svoju vec, a robi ju poriadne, ako 1 nastroj co robi 100 veci s bugmi
Tohle je tak nesmyslné a otřepané klišé, že se nad tím už nikdo nezamýšlí. A co když _potřebuju_ udělat 100 různých věcí? Jak mám pospojovat ty jednoúčelové? Pajpou nebo raději funkčním voláním? A co je vlastně ten "nástroj", co dělá svou věc? Je to nějaký hotový program? Nebo knihovna? Nebo programovací jazyk?
29.6.2006 19:11 Dunric | skóre: 21
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
To co považujete za "otřepané klišé" jako dekompoziční princip funguje od věky věků ;-) Čím jednodušší mechanismus, tím méně náchylný k chybám a údržbě. Komunikace mezi objekty je pak jen jejich variace.

Já bych naopak považoval za klišé tvrzení, že Unixovská filozofie přežila bez výrazných změn 30 let díky spiknutí vousatých ultrakonzervativních nerdů místo uznání, že prostě obstála v evoluci :-)

In the garden sleeps a messenger ·
29.6.2006 20:12 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Jasně. Beru zpět svou horkokrevnou reakci a omlouvám se za ni. Jen jsem poněkud ostražitý při přejímání myšlenek, které ve výpočetní technice vznikly před těmi třiceti lety. Není to nic proti ničemu a nechci se o tom hádat.
Mikos avatar 29.6.2006 15:57 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
To že je init-ng napsaný v C je právě jeho největší nevýhoda ;-) Alespoň tedy z mého pohledu...

Mám milionkrát radši Python (nebo třeba i Ruby, které jinak zas tak moc nemusím), než Cčko. A zrovna na init skripty je C navíc naprosto zbytečné a přidělávající práci...
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
29.6.2006 16:00 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
je rozdiel medzi programom init (to je ten, co ma pid 1) a rc scriptami (vami nazvane init skripty), co su skripty spustajuce sluzby.
Mikos avatar 29.6.2006 16:02 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Pokud vím tak init-ng se stará právě o rc skripty. I když možná obsahuje i nějakou obdobu initu? Je to možný, zas moc sem se o něj nezajímal :-) Každopádně náhrad za init je spousta, ale věci okolo rc skriptů bych opravdu v Cčku mít řešeny nechtěl...
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
29.6.2006 16:11 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
o rc skripty sa stara aj init (old generation), niekto ich predsa spustit musi :-) presnejsie, spusti sa jeden skript (rc.4 napr), a ten spusti dalsie skripty, potrebne/vyzadovane pre initlevel 4.
stativ avatar 29.6.2006 17:51 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Je videt, ze jste neposkvrneni initNG :-D.
InitNG pouziva vlastni dosti promakany system init scriptu. Jen pro ukazku asi nejjednodussi (pro nastaveni swapu):
#!/sbin/itype
# This is a i file, used by initng parsed by install_service

service system/swap {
	need = system/initial system/mountfs;
	exec start = /sbin/swapon -a;
	exec stop = /sbin/swapoff -a;
}

Je tu krasne videt, ze ma vyresene i zavislosti na jinych scriptech. Zaroven je to krasny priklad jeho modularity-pro kazdou vec je samostatny initscript.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
29.6.2006 16:26 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Jsem pravděpodobně dost ovlivněný Fedorou, která (ač je to jinak docela fajn distribuce) je ukázkou příšernosti shellových skriptů. Po nabootování (které trvá asi minutu) má nejvyšší číslo procesu 2200, zatímco běžících procesů je 70. Toto jsou údaje, které opravdu nemíním s nikým konfrontovat - každý to bude mít jinak. Ale přece jen to svědčí o tom, jaké postupy se používají při psaní skriptů.

Zdůrazňuji, že si nemyslím, že je shell tak nepoužitelně pomalý, přestože je nechutné, jak musí tahat všechny berličky z disku. I kdyby ty skripty někdo pouze od nuly přepsal, tak se tím dosáhne slušného zlepšení. Jsou tam hrozní kostlivci ve skříni. Jenže když už to psát od nuly, tak Python vidím jako nejlepší volbu. Napsat v Bashi prosté paralelní spouštění věcí je hračka. Ale co to vyřešení závislostí, timeouty, zámky, thready, status, přidávání a odebírání služeb a vše co s tím souvisí? Jak by to asi vypadalo? V shellu by to bylo strašné a naprosto zbytečné násilí.
29.6.2006 16:35 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
najprv oprava ...
jaké postupy se používají při psaní skriptů ve Fedore. (snad sa nemylim v tom "ve")

zavislosti, timeouty, to nech si riesia sluzby samotne
zamky, thready, to v slusnom systeme ani nema co hladat :-)
pridavanie/ubern takze podme na zavislosti, ako si predstavujete riesenie? spolahnut sa na uzivatela alebo ich dynamicky vyratavat?

navrhnite riesenie a ja vam zadam problem na vyriesenie :-)

priklad: ntpd. je jeho spustenie je finalna akcia neblokujuca ine sluzby?

29.6.2006 16:53 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Fajn. Máme na věci jiný názor a neshodneme se. Svou představu o tom, jaké vidím řešení, jsem popsal v blogu.
Stávající boot je takový, že závislosti mezi službami jsou dány pouze pořadím při spouštění. To bych koneckonců úplně klidně mohl emulovat, takže se tím žádné dveře nezavírají. A nechcete říct, že paralelní spouštění je blbost, že ne?
29.6.2006 17:06 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Fajn. Máme na věci jiný názor a neshodneme se. Svou představu o tom, jaké vidím řešení, jsem popsal v blogu.
Suhlasim s vasim nazorom ohladne sucasnej situacie, nesuhlasim s vasou vidinou riesenia. Zda sa mi, ze sa prilis zameriavate len na vam zname pouzitie (vasa distribucia/instalacia). Ako som uz pisal, kludne vam na odpoviem na otazky, kludne vas budem kritizovat (dufam ze konstruktivne) :-)
A nechcete říct, že paralelní spouštění je blbost, že ne?
to nie, ale nie je jednoznacne jasne, ktora sluzba (a kedy) je, alebo nie je ta posledna (t.j. ta, ktora sa da spustat paralelne).

29.6.2006 17:10 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Myslel bych, že závislosti budou obecný DAG a tak by s nimi mělo být i zacházeno, ne?
29.6.2006 17:21 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Zavislosti su prilis komplikovane na management. Treba udrziavat zoznamy "vyzadujem-spustit-skor", napr apache vyzaduje network, a "musi-byt-spustene-skor", napr ntpd, ak je sluzba spustana, musi byt (mala by byt) spustana skor aka napr apache, ale az po network

jednoduchsie riesenie su urovne ... a tie napr vo ferodore su. Mozno by som skor rozmyslal nad sposobom, ako tieto urovne rozsirit (napr stromovo)

29.6.2006 17:21 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
kua, dnes uz druhy preklep ...
vo fedore, samozrejme
29.6.2006 18:17 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Hm, niečo mi toto odhodlanie pripomenulo. InitNG spomenutý už bol, ja pridám ďalší projekt: runit.
O mne.
Josef Kufner avatar 29.6.2006 20:32 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
Nechápu co řešíte. Jediný požadavek, který v podstatě máte je to, aby se login objevil co nejdříve. Tak proč si ho sakra nedáte na začátek?

Udělal jsem na stolním kompu to, že se kdm spustí tak brzo, jak jen je to možné. Naskočej Xka, automaticky se přihlásí, začne nabíhat KDE a na pozadí se dobootuje.

Vždyť je úplně putna, jestli proftpd a apache na desktopu naskočí o 10 sec dřív či později.
Hello world ! Segmentation fault (core dumped)
29.6.2006 20:56 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Nechápu co řešíte. Jediný požadavek, který v podstatě máte je to, aby se login objevil co nejdříve. Tak proč si ho sakra nedáte na začátek?
No to jsem opravdu nerad, jestli z těch cílů, které jsem vymezil, vyplynulo pouze toto. Ale nevadí. Nechte to plavat. Z nějakých prapodivných důvodů jsme my dva většinou v opozici, takže z dalšího rozebírání stejně nic konstruktivního nevyplyne.
Josef Kufner avatar 29.6.2006 21:53 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
A nebyla by to nuda, kdyby spolu všichni souhlasili? :-D
Hello world ! Segmentation fault (core dumped)
martink avatar 30.6.2006 00:57 martink | skóre: 10 | Hradec Králové
Rozbalit Rozbalit vše Re: Přepsání init skriptů do Pythonu
Odpovědět | Sbalit | Link | Blokovat | Admin
http://smarden.org/runit/

Malé, rychlé, spolehlivé, geniální. Je možné to použít i s normálním initem jen na spouštění služeb.

Spoustu řádků initscriptů často zabírají různé kontroly, jako jestli služba už běží, nebo už skončila, jestli existuje soubor s PID apod. Tyhle problémy runit nemá. Třeba můj skript na spouštění sshd vypadá nějak takhle:
#!/bin/sh
exec 2>&1
exec /usr/sbin/sshd -D
runit je spolehlivý a stabilní (pár řádků v C, ideálně slinkovaný s dietlibc...), služby spouští paralelně a řeší závislosti (geniálně jednoduše, viz dokumentace), služby monitoruje a případně restartuje, je možné služby ovládat příkazem sv (např. sv start sshd), ...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.