Portál AbcLinuxu, 30. dubna 2025 15:39
Tak toto bude asi dosť komentovaný blog.Sedm a půl hodiny pryč a zatím nic moc. ;) Navíc jestli přijdou argumenty již zmíněné v zápisku, tak nevím, jestli seberu sílu na ně znovu reagovat. :D
Nejak mi to už je dnes jedno, ale mal som pocit, že ťa v tom nemôžem nechať, keď sem v trhnú vyvolení.Tak jako víš co, já jsem pro systemd fanboys teď rok a půl dělal to, že jsem to dobrovolně používal na svém laptopu a opravoval jsem jim služby, aby ten boot a další operace vůbec správně běhaly. Definitivně mě přesvědčilo, že mi někteří diskutéři jsou dosud schopni psát, že nadávám na něco/někoho úspěšného a sám vůbec nic nedělám, a přitom vesele používají různé výsledky mojí práce. Mně už prostě nebaví podporovat apriori „zmrdskou“ (Michal Kubeček odpustí, když je to v uvozovkách) komunitu, která se programově chová hrozně od core vývojářů až po nadšence v diskuzích. Takže ano, rok a půl jsem kritizoval technickou i komunitní stránku, ale ve finále jsem dospěl k tomu, že nějaký kód umí psát kdekdo a vyšší prioritu si u mě nakonec získala lidská stránka celé věci. Takže ano, mám za sebou hromadu technických důvodů, ale je potřeba přiznat, že svoji váhu mají i ty netechnické, za což se ale člověk nemusí stydět. Jinak systemd fanboys se můžou pod blogem vyjadřovat, jak chtějí, ale byly to ve finále oni, kdo mi poskytli jedny z posledních argumentů pro přechod k OpenRC, takže nevím, čeho víc by ještě mohli dosáhnout. Ale třeba se něco najde. :)
Inak to XFCE a MATE mi kedysi prišlo fajn, po dlhšom používaní IceWM sa mi zdajú neskutočne obmedzené.Stále se držím i3 a zatím dělá přesně to, co potřebuju bez nutnosti nějaké extra konfigurace. :)
Tak toto bude asi dosť komentovaný blog.Mně to připadá jako spíše nehořlavý materiál
S IMHO velmi přesným vysvětlením přišel jeden kolega. Lennart podle všeho systemd bere jako jakýsi "research project" a v duchu toho funguje celý vývoj a (ne)správa. Implementují se různé vize, i když jsou někdy dost šílené, use case je podstatný jen když se podstatný zdá Lennartovi a spol., obecně se nebere ohled na to, kdo a jak systemd používá, bugy se řeší když je chuť atd. Kašle se na spolupráci s ostatními projekty, a to nejen těmi, které se nechtějí nebo nemohou přizpůsobit ("our way or the highway"), ale s těmi, které by spolupracovat chtěly ("udělat z toho knihovnu by bylo moc svazující, sada volně propojených object files je mnohem praktičtější").
Takových živelných projektů je samozřejmě spousta a většina z nich nevyvolává takové vášně jako systemd, dílem proto, že o většině se většina uživatelů ani nedozví. Čímž se dostáváme k tomu, co jsem psal už několikrát: hlavní díl viny za současný stav nevidím na straně Lennarta a jeho týmu; oni mají plné právo si takový hobby / research projekt vyvíjet a spravovat ho, jak uznají za vhodné. Pro mne jsou hlavními viníky manažeři většiny mainstreamových distribucí, kteří mávli rukou nad technickými a organizačními aspekty a z takto vedeného projektu udělali základní stavební kámen těch distribucí.
Nabízí se srovnání s Linusem, který sice jádro taky začal jako hobby projekt, ale jakmile viděl, kolik lidí (a později firem) ho používá, už dlouho se jim až úzkostlivě snaží neškodit. Koneckonců většina těch výlevů, kdy někoho seřve jako malého kluka, je právě kvůli tomu, že se některý high level maintainer snažil obhajovat porušení zásady "don't break the userspace". (Kernelové API a out of tree moduly, to je ovšem úplně jiný příběh.)
K tomu bych přidal ještě další věc a to je chování lidí z RedHatu. Myslím běžné zaměstnance. To, že jsou všichni tajemní jak hrad v Karpatech, když jde o cokoliv co se týká RH, na to jsem si už tak nějak za ty roky zvykl. Jenže, když jde o systemd, tak to dostává další level.Protože ne všechny a ne všechno je dobré otevřeně kritizovat, pokud chceš, aby se ti dobře dařilo. Proto taky uvidíš daleko otevřenější přístup v češtině, kde se tak nějak příliš neočekává, že by to četl někdo, u koho by to mělo vadit. A kromě toho je brněnský office dost anit-systemd.
Jako fakt nevím, jestli ti lidé mají povinnost šířit slávu sd, jinak nedostanou plat, nebo je RH nějaká sekta a ti lidi fakt věří tomu co říkají.No já nevím, ale mě při nástupu tvrdili, že je Red Hat firma, a to celkově dost otevřená, a zatím jsem nějak nestihl zjistit opak. Navíc mám pocit, že i tady na ábíčku se docela dost lidí projevovalo proti systemd a někteří i dost nevybíravě. Nevím, jaké vidíš třeba u mě šíření slávy. :D
Jako vždyť je to jen software. Ti lidé se chovají, jako kdyby jim někdo sáhl na milenku.Ale kteří lidé? Většina ulítlých nadšenců třeba tady na ábíčku nemá s RH vůbec nic společného. A nakonec i Lennart považuje RH spíše za sponzora než za zaměstnavatele, podle toho, co se v tom projektu děje.
Navíc mám pocit, že i tady na ábíčku se docela dost lidí projevovalo proti systemd a někteří i dost nevybíravě.
Souhlas. Já už rozhodně zaměstnance RH na systemd nadávat viděl.
A nakonec i Lennart považuje RH spíše za sponzora než za zaměstnavatele, podle toho, co se v tom projektu děje.
V tom je možná trochu rozdíl mezi SUSE a RH. SUSE je (relativně) malá firma, takže jsou vývojáři víc svázaní s tím, co ta firma dělá a odkud se berou peníze na jejich výplaty. (OK, to už se trochu mění, nemůžu třeba říct, že bych měl moc jasnou představu, čím se zabývají všichni ti lidé, které nabíráme na cloud. :-) )
RH je o dost větší a může si podle všeho dovolit zaměstnávat lidi, kteří si dělají svou práci zcela odtrženi od toho, jaké produkty firma nabízí a za co jí zákazníci platí. To jsou na jedné straně třeba maintaineři subsystémů jádra na plný úvazek, na druhé straně vývojáři provádějící na plný úvazek jakýsi "základní výzkum", aniž by se museli zabývat praktickými aplikacemi. Lennart Poettering se zdá patřit do té druhé skupiny.
Protože ne všechny a ne všechno je dobré otevřeně kritizovat, pokud chceš, aby se ti dobře dařilo.Ano. Tolik k otevřenosti.
Nevím, jaké vidíš třeba u mě šíření slávy.Pamatuji si, jak se tady před lety řešily některé věci v RH (ne ještě systemd) a ty ses tvářil, že v RH nepracuješ. Ostatně to vyústilo až do tvé dnešní patičky: Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
Ale kteří lidé?Nebudu jmenovat. Nejedná se o lidi zde na abc.
Ano. Tolik k otevřenosti.Nevím jak otevřeněji bych to měl napsat. ;)
Pamatuji si, jak se tady před lety řešily některé věci v RH (ne ještě systemd) a ty ses tvářil, že v RH nepracuješ.Jestli jsem se tvářil, že v RH nepracuju, pak to bylo před 2. květnem 2012. :)
Ostatně to vyústilo až do tvé dnešní patičky: Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.To ne, to je patička, která vznikla na základě toho, že mě někteří méně důvtipní jedinci škatulkovali podle toho, kde jsem zrovna zaměstnán, a neustále mě obtěžovali kvůli věcem, které absolutně nebyly můj problém. A popravdě řečeno ta patička zafungovala skvěle.
S IMHO velmi přesným vysvětlením přišel jeden kolega. Lennart podle všeho systemd bere jako jakýsi "research project" a v duchu toho funguje celý vývoj a (ne)správa. Implementují se různé vize, i když jsou někdy dost šílené, use case je podstatný jen když se podstatný zdá Lennartovi a spol., obecně se nebere ohled na to, kdo a jak systemd používá, bugy se řeší když je chuť atd. Kašle se na spolupráci s ostatními projekty, a to nejen těmi, které se nechtějí nebo nemohou přizpůsobit ("our way or the highway"), ale s těmi, které by spolupracovat chtěly ("udělat z toho knihovnu by bylo moc svazující, sada volně propojených object files je mnohem praktičtější").Tak to do posledního puntíku odpovídá mojí zkušenosti.
Pro mne jsou hlavními viníky manažeři většiny mainstreamových distribucí, kteří mávli rukou nad technickými a organizačními aspekty a z takto vedeného projektu udělali základní stavební kámen těch distribucí.V tom se naprosto vzácně shodujeme.
emerge gentoo-kernel
tak, jak to Vlasta popisoval v přednášce. A další na řadě asi bude výroba user configu pomocí menuconfigu. ;)
Ale vývoj vidím dost pozvolně, když zrovna bude nálada.
systemctl -u unit
prostě nefunguje. Ví se o tom od roku 2012 a nikoho to netankuje.
Proč to píšu.
Ten první příklad je pro mě wtf moment, protože kdybych já něco takového psal, tak bych měl jako základ normální služby (start stop), potom by mě napadl geniální nápad předávat sockety a až potom by mě třeba napadlo, že by mohlo být dobré to pomocí těch socketů aktivovat. Všechno volitelně. Mám službu jako základ, můžu předat socket a můžu to i aktivovat. Proč je to v systemd naimplementované opačně mi není jasné. Ale ok, toto neberu jako chybu, ale jako chybějící vlastnost.
Ten druhý příklad je ale závažnější. Ta věc vlastně nefungovala nikdy. A opět, já nevím jak kdo, ale já když mám něco dělat, tak si nejprve zjistím, zda je možné to udělat. Jestli v tomto případě potřebují nějakou funkci v kernelu, tak je potřeba tam tu funkci mít předtím, než to začnou psát. Ne udělat nefunkční věc (strčit ji do každého návodu) a potom se na to 4 roky dívat.
FIFO sockety. Podle mě je to super věc.Jó, naprosto supr. „Díky“ tomu není možné remountnout rootovský filesystem (protože není možné zabít proces 0), ale kdo by chtěl takovou blbost taky dělat, že ano?
mount -o remount,relatime /Změnil jsem noatime (fstab) na relatime, no problémo. BTRFS zapsal do logu to co píše u mountu běžně:
[Wed Nov 23 10:19:59 2016] BTRFS info (device sda2): disk space caching is enabledA kupodivu i pid 0 běží v pohodě dál. (A to o mě říkají, že jsem systemd.hater.)
Co je to "FIFO socket"?https://www.freedesktop.org/software/systemd/man/systemd.socket.html
ListenFIFO=FIFO socket je samozřejmě zkratka FIFO + socket activation. Jeden by si myslel, že to v daném kontextu bude jasné.
Proces 0" má být swapper?Ne, jen systemd povýšil na jádro, takže místo původní 1 už je to 0.
Díky za částečné odmatení.
Jeden by si myslel, že to v daném kontextu bude jasné.
Dokumentaci k systemd čtu jen když není jiného zbytí. Zatím bylo. :-)
Dokumentaci k systemd čtu jen když není jiného zbytí. Zatím bylo.Dokumentace systemd není úplně špatná, jen nepokrývá spoustu zásadních praktických témat, ale jako reference funguje.
mount -o remount,ro /
. Od té doby mi systemd „do bytu“ nesmí.
lsof /
" by měl ukázat kdo a co.
Jenže ta socket activation část se nedá vypnout. Rád bych měl tutéž možnost, předat fifo na stdin, ale bez toho socket activation. To tam prostě není.Docela by me zajimal presny use-case. Pokud chci mit dvojici sluzba-socket, ale zapinat to chci pres sluzbu, tak do sluzby muzu dat Wants a after na ten ten socket a socketu klidne i hodit RefuseManualStart, ale to asi neni pripad, ktery popisujete.
Takže ve všech tutoriálech doporučované použití systemctl -u unit prostě nefunguje. Ví se o tom od roku 2012 a nikoho to netankuje.Predpokladam ze tam melo byt journalctl, ale s tim se nikdy problem nemel, muzete sem prosim hodit odkaz na nejaky issuer nebo bug, kde to bylo nahlaseno.
Docela by me zajimal presny use-case.Existují programy (zcela konkrétně minecraft server), které se nechají ovládat příkazy posílané na stdin. Toto se dosud řeší tak, že daná věc běží v tmux / screen a přes
send keys
se tomu programu na stdin posílají příkazy. Program píše své informace na stdout. Jinak poslouchá na síti (přes kterou se blbě řídí).
Tohle řešení sice funguje, ale má vlastně jen samé nevýhody. Jednak se výstup toho programu (to co píše na stdout) nikam nezaznamenává (zrovna mc má vlastní log, ale obecně tam být nemusí), ale taky, když ten program v tom tmuxu sletí, tak se to potom z vnějšku blbě startuje.
Takže se to dá strčit do systemd jako simple service. Výstup toho programu (to co posílá na stdout) se automaticky loguje do journalu. A díky socket activation (resp mechanismu předávání socketů) se s tím dá kecat i přes fifo nasměrované na stdin. Takže tomu posíláte věci na stdin a odpovědi čtete v journalu.
Takže potud spokojenost.
Jenže je poněkud hloupé v situaci, kdy je ta služba vypnutá, když tomu pošlete na FIFO příkaz "stop". K vůli socket activation se ta služba nastartuje, přečte si příkaz ze stdin a potom se ukončí. To už je trochu blbé. Takže by bylo fajn mít možnost ten fifo na ten stdin napojit, ale vypnout socket activation.
Jako on to není až tak velký problém, dá se s tím žít, ale bylo by hezké mít možnost tu aktivaci vypnout.
Predpokladam ze tam melo byt journalctl, ale s tim se nikdy problem nemel, muzete sem prosim hodit odkaz na nejaky issuer nebo bug, kde to bylo nahlaseno.Jo jasně, journalctl. Zde.
No a neslo by prave na tohle pouzit to moje zmninene reseni? Kdyz spustim server tak mi to predtim nahodi socket, ale jinak tam nebude. Mozna to bude chtit nejake bindsto, aby se ten socket zase vypnul kdyz se ukonci sluzba.Zkusím.
Problem tam proste je ze mi dostaneme zpravu a nejsme schopni zjistit od koho prisla, protoze process mezi tim umre.Ale to je přesně to, o čem jsem psal. Ta věc správně nefungovala nikdy. A ví se o tom minimálně 4 roky. A není o tom ani čárka v sekci BUGS v man stránkách. OK, pokud je ta vlastnost tak užitečná, že se někdo rozhodl to tam nechat, i když tam je zatím nevyřešitelná chyba, tak měl napsat do manu upozornění, že to nemusí vždy fungovat. Tohle je u různých programů v manu napsáno běžně. Ne, místo toho je to
-u
ve všech tutoriálech a o chybě ani čárka...
Já na to přišel během 10minut. Při přepisu některých cronových úloh do one shot + timer. Potom jsem dva dny řešil, proč to tak je ... Jako workaround se dá použít -t
a jméno toho příkazu (v ExecStart). Tam jsou záznamy otagované asi všechny (na problém jsem dosud nenarazil).
Ad https://bugs.freedesktop.org/show_bug.cgi?id=50184 Jo to budou ty short-lived procesy. Jeden kolega pro to psal patch do kernelu a bohuzel byl zamitnutej. Myslim ze tam bylo navrhnute i nejake reseni za pouziti kdbusu (i kdyz ted me nenapada jak), ale to taky nevyslo. Problem tam proste je ze mi dostaneme zpravu a nejsme schopni zjistit od koho prisla, protoze process mezi tim umre. V user-spacu tezko neco vymyslime, tam je potreba nejakou ficuru do kernelu, myslim ze na rhbz na to i mame bug.Nevim, jestli se neptám úplně blbě, ale proč nemůže ty informace posbírat
sd_journal_send()
a předat je?
Ja som po rokoch s linuxom a po umornej bitve so systemd presiel na windows na osobnom pc ...Když ti to vyhovuje. To by pro mě nebylo řešeňí a hlavně to vůbec není potřeba.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.